别问我是谁(jiangxixfwan)
状态:
等级:
性别:年龄: 35
城市: 保密
签名:没有花香,没有树高,我是一棵无人知道的小草,有点寂寞,有点烦恼,所以我在网上到处流浪......
·访客/2007-05-31
【原创】查杀网络爱....
·伊丹/2007-05-30
有一些对我还是蛮实....
·Aia静/2007-05-26
蛮有用的哦

先收了

最....
·瑜儿/2007-05-23
太深澳了,看不懂....
·小子枫/2007-05-16
看到了好多的代码 ....
·jiangxixfwan (别问我是谁)/2006-01-10
我也只是从网上直接....
·adele1984 (呓语女子)/2006-01-10
完全看不懂
有点头痛....
 
 
         
  晓峰工作日志
想记什么就记什么,只要是不违法的事情。


2008.09.06 10:10:00 
 SQL中的系统变量  


全局变量是系统预定义的,返回一些系统信息,全局变量以两个at(@)开头。下面是我统计了一些较为常用的变量。

@@CONNECTIONS
返回自上次启动以来连接或试图连接的次数。

@@CURSOR_ROWS
返回连接上最后打开的游标中当前存在的合格行的数量。

@@DATEFIRST
返回每周第一天的数字

@@ERROR
返回最后执行的SQL 语句的错误代码。

@@FETCH_STATUS
返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。

@@IDENTITY
返回最后插入的标识值

@@LANGID
返回当前所使用语言的本地语言标识符(ID)。

@@LANGUAGE
返回当前使用的语言名。

@@LOCK_TIMEOUT
返回当前会话的当前锁超时设置,单位为毫秒。

@@PROCID
返回当前过程的存储过程标识符 (ID) 。

@@ROWCOUNT
返回受上一语句影响的行数。

@@SERVERNAME
返回运行 的本地服务器名称。

@@SPID
返回当前用户进程的服务器进程标识符 (ID)。

@@TRANCOUNT
返回当前连接的活动事务数。

@@VERSION
返回当前安装的日期、版本和处理器类型。
标签:sql,变量
作者 jiangxixfwan 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.12.07 08:26:00 
 一个卖烧饼的故事  
 
 有一个故事,来看看能不能解答你的疑问。
假设一个市场,有两个人在卖烧饼,有且只有两个人,姑且称他们为烧饼甲、烧饼乙。
假设他们的烧饼价格没有物价局监管。
假设他们每个烧饼卖一元钱就可以保本(包括他们的劳动力价值).
假设他们的烧饼数量一样多。
——经济模型都这样,假设需要很多。
再假设他们生意很不好,一个买烧饼的人都没有。这样他们很无聊地站了半天。
甲说好无聊。
乙说好无聊。
看故事的你们说:好无聊。
这个时候的市场叫做很不活跃!
为了让大家不无聊,甲对乙说:要不我们玩个游戏?乙赞成.
于是,故事开始了。。。。。。

甲花一元钱买乙一个烧饼,乙也花一元钱买甲一个烧饼,现金交付。
甲再花两元钱买乙一个烧饼,乙也花两元钱买甲一个烧饼,现金交付。
甲再花三元钱买乙一个烧饼,乙也花三元钱买甲一个烧饼,现金交付。
。。。。。。
于是在整个市场的人看来(包括看故事的你)烧饼的价格飞涨,不一会儿就
涨到了每个烧饼60元。但只要甲和乙手上的烧饼数一样,那么谁都没有赚
钱,谁也没有亏钱,但是他们重估以后的资产“增值”了!甲乙拥有高出过
去很多倍的“财富”,他们身价提高了很多,“市值”增加了很多。
这个时候有路人丙,一个小时前路过的时候知道烧饼是一元一个,现在发现
是60元一个,他很惊讶。
一个小时以后,路人丙发现烧饼已经是100元一个,他更惊讶了。
又一个小时以后,路人丙发现烧饼已经是120元一个了,他毫不犹豫地买了
一个,因为他是个投资兼投机家,他确信烧饼价格还会涨,价格上还有上升
空间,并且有人给出了超过200元的“目标价”(在股票市场,他叫股民,
给出目标价的人叫研究员)。
在烧饼甲、烧饼乙“赚钱”的示范效应下,甚至路人丙赚钱的示范效应下,
接下来的买烧饼的路人越来越多,参与买卖的人也越来越多,烧饼价格节节
攀升,所有的人都非常高兴,因为很奇怪:所有人都没有亏钱。。。。。。
这个时候,你可以想见,甲和乙谁手上的烧饼少,即谁的资产少,谁就真正
的赚钱了。参与购买的人,谁手上没烧饼了,谁就真正赚钱了!而且卖了的
人都很后悔——因为烧饼价格还在飞快地涨。。。。。。
那谁亏了钱呢?
答案是:谁也没有亏钱,因为很多出高价购买烧饼的人手上持有大家公认的
优质等值资产——烧饼!而烧饼显然比现金好!现金存银行能有多少一点利
息啊?哪比得上价格飞涨的烧饼啊?甚至大家一致认为市场烧饼供不应求,
可不可以买烧饼期货啊?于是出现了认购权证。。。。。。
   有人问了:买烧饼永远不会亏钱吗?看样子是的。但这个世界就那么奇
怪,突然市场上来了一个叫李子的,李子曰:有亏钱的时候!那哪一天大家
会亏钱呢?
假设一:市场上来了个物价部门,他认为烧饼的定价应该是每个一元。(监
管)
假设二:市场出现了很多做烧饼的,而且价格就是每个一元。(同样题材)
假设三:市场出现了很多可供玩这种游戏的商品。(发行)
假设四:大家突然发现这不过是个烧饼!(价值发现)
假设五:没有人再愿意玩互相买卖的游戏了!(真相大白)
如果有一天,任何一个假设出现了,那么这一天,有烧饼的人就亏钱了!那
谁赚了钱?就是最少占有资产——烧饼的人!
这个卖烧饼的故事非常简单,人人都觉得高价买烧饼的人是傻瓜,但我们再
回首看看我们所在的证券市场的人们吧。这个市场的有些所谓的资产重估、
资产注入何尝不是这样?在ROE高企,资产有高溢价下的资产注入,和卖
烧饼的原理其实一样,谁最少地占有资产,谁就是赚钱的人,谁就是获得高
收益的人!
所以作为一个投资人,要理性地看待资产重估和资产注入,忽悠别人不要忽
悠自己,尤其不要忽悠自己的钱!
在高ROE下的资产注入,尤其是券商借壳上市、增发购买大股东的资产、
增发类的房地产等等资产注入,一定要把眼睛擦亮再擦亮,慎重再慎重!
因为,你很可能成为一个持有高价烧饼的路人!

标签:股票,股市,故事
作者 jiangxixfwan 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.11.30 11:52:00 
 留住剩菜营养大有学问  

留住剩菜营养大有学问(图)

http://bj.sina.com.cn 2007年11月29日10:00  羊城地铁报


留住剩菜营养大有学问

  现在,很多人在出去餐馆吃饭后,剩菜打包的习惯越来越流行,可是大家有没有想到,食品打包回去后如何更好的利用它的营养价值呢?

  打包的学问

  1、打包的食物需凉透后再放入冰箱

  这是因为热食物突然进入低温环境当中,食物中心容易发生质变,而且食物带入的热气会引起水蒸气的凝结,促使霉菌的生长,从而导致整个

冰箱内食物的霉变。

  2、打包食物必须回锅

  冰箱中存放的食物取出后必须回锅。这是因为冰箱的温度只能抑制细菌繁殖,不能彻底杀灭它们。如果您在食用前没有加热的话,食用之后就会造成不适,例如痢疾或者腹泻。

  3、剩菜保存时间不宜过长

  剩菜的存放时间以不隔餐为宜,早上剩的菜中午吃,中午剩的菜晚上吃,最好能在5~6个小时内吃掉它。因为在一般情况下,通过100摄氏度的高温加热,几分钟内是可以杀灭某些细菌

病毒和寄生虫的。但是,如果食物存放的时间过长,食物中的细菌就会释放出化学性毒素,对这些毒素加热就无能为力了。

  4、素菜不宜打包

  因为在素菜制作的过程当中,一般用盐比较少,做好的素菜在温度比较高的情况下放的时间一长,菜里面的细菌就会大量繁殖,硝酸盐在细菌的作用下会被还原成亚硝酸盐。亚硝酸盐在自然界极易与胺合成亚硝胺,亚硝胺是强致癌物。如果我们长期食用剩的蔬菜,对我们的健康是不利的,就像长期食用腌的

咸菜之类的食品患胃癌的几率就比较高。

  剩菜加热时需要注意的问题

  鱼类:加热四五分钟就好

  鱼类加工的菜中的细菌很容易繁殖,上面的大肠杆菌在20摄氏度左右的温度里每8分钟就能够繁殖两倍,在五六个小时之内一个细菌就会变成一亿个。如此的数量足以让您的肠胃感到不舒服。

  所以,打包的鱼类一定要加热四五分钟。但过长时间加热,鱼中所含的全价蛋白、鱼脂和丰富的维生素等有益于人体神经系统的营养素就会失去营养价值。

  肉类:加热时请加点醋

  肉类和动物类的食品打包回去后再次加热,最好是加上一些醋。因为这类食品都含有比较丰富的矿物质,这些矿物质加热后,都会随着水分一同溢出。那么,在加热的时候加上一些醋,这些物质遇上了醋酸就会合成为醋酸钙,不仅提高了它的营养,同时还有利于我们身体的吸收和利用。

  海鲜类:加热时应加点佐料

  贝类,海鲜类的食品在加热时最好另外加一些酒,葱,姜等佐料,这样不仅可以提鲜,而且还具有一定的杀菌作用,可以杀灭潜伏其中的副溶血性弧菌,防止引起肠胃的不适,特别是姜,在中医里具有杀菌和解毒(特别是鱼虾蟹之毒)的功效。

  淀粉类:请在4小时内吃完

  打包回来富含淀粉类的一些食品,最好在4小时内吃完,因为它们容易被葡萄球菌寄生。而这类细菌的毒素在高温加热之下也不会被分解,解决不了变质的问题。

标签:营养,剩菜
作者 jiangxixfwan 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.10.26 08:31:00 
 習慣  
    1、当一个人生活枯燥的时候,   他忘了用心体会是一种习惯。

  2、当一个人觉得人生乏味的时候, 他忘了培养幽默是一种习惯。

  3、当一个人体力日差的时候,   他忘了运动建身是一种习惯。

  4、当一个人工作疲惫的时候,   他忘了认真休息是一种习惯。

  5、当一个人孤傲狂放的时候,   他忘了感恩惜福是一种习惯。

  6、当一个人志得意满的时候,   他忘了谦冲为怀是一种习惯。

  7、当一个人钱不够用的时候,   他忘了投资理财是一种习惯。

  8、当一个人觉得工作低迷的时候, 他忘了激励自己是一种习惯。

  9、当一个人怀疑自己的时候,   他忘了建立自信是一种习惯。

  10、当一个人忽略家人的时候,   他忘了爱与关怀是一种习惯。

  11、当一个人浑噩度日的时候,   他忘了阅读好书是一种习惯。

  12、当一个人忙于工作的时候,   他忘了安排休闲是一种习惯。

  13、当一个人目中无人的时候,   他忘了不断学习是一种习惯。

  14、当一个人服务不佳的时候,   他忘了让顾客满意是一种习惯。

  15、当一个人慌张失措的时候,   他忘了万全准备是一种习惯。

  16、当一个人推诿责任的时候,   他忘了勇于承担是一种习惯。

  17、当一个人肠枯思竭的时候,   他忘了转型思考是一种习惯。

  18、当一个人沮丧失意的时候,   他忘了检讨改进是一种习惯。

  19、当一个人畏惧调职的时候,   他忘了提升自己是一种习惯。

  20、当一个人沟通障碍的时候,   他忘了真诚倾听是一种习惯。

  21、当一个人业绩消退的时候,   他忘了积极行动是一种习惯。

标签:
作者 jiangxixfwan 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.10.03 21:38:00 
 说话的温度  
小心说话,而且要"说好话".话说出之前先思考一   下,把握好"温度",不要莽莽撞撞地脱口而出.

    急事,慢慢地说;

    大事,清楚地说;

    小事,幽默地说;

    没有把握的事,谨慎地说;

    没有发生的事,不要胡说;

    做不到的事,别乱说;

    伤害人的事,不能说;

    讨厌的事,对事不对人地说;

    开心的事,看出场合说;

    伤心的事,不要见人就说;

    别人的事,小心地说;

    自己的事,听自己的心怎么说;

    现在的事,做了再说;

    未来的事,未来再说;

    如果,对我有不满意的地方,请一定要对我说!

标签:说话的温度
作者 jiangxixfwan 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.09.12 16:31:00 
 刘彦斌投资基金的五点建议  
第一,要坚持长期投资

     红利转投和定期定投都是很好的投资方法.

第二,要进行分散投资

     投资人应该购买三到五只基金,而且这些基金应该分别属于不同的基金管理公司.

第三,要选择有品牌的基金管理公司,而不是选择基金经理

 基金管理公司应该有历史业绩可以考察;基金的业绩是"团队行为"的结果,而不是某个基金经理个人的行为结果. 铁打的公司,流水的经理,不能因为换了经理就换基金吧.

第四,慎重投资单只规模过大的基金

      单只基金规模过大,会造成基金管理的难度提高,可能会对基金的业绩表现造成影响.

第五,投资ETF是一种很好的方式
      ETF是指数型基金,又称为被动型基金,它是一揽子优质股票的组合,它基本上复制了大盘的走势.而从长期来看,大多数主动型基金的业绩都是跑不赢大盘的.
标签:基金
作者 jiangxixfwan 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.09.02 20:53:00 
 千万不要生吃的10种常见食物  
千万不要生吃的10种常见食物


一忌生吃鲜黄花菜。鲜黄花菜含有秋水仙碱,进入人体形成氧化二秋水仙碱,极毒,食用3-20毫克就可致死。

二忌生吃荸荠。常吃生荸荠,其中的姜片虫就会进入人体并附在肠粘膜上,可造成肠道溃疡、腹泻或面部浮肿。

三忌生吃白糖。白糖中常有螨虫寄生,生吃白糖很容易得螨虫病。螨是一种全身长毛的小昆虫,肉眼看不见,螨在糖中繁殖很快。若螨虫进入胃肠道,就会引起腹痛、腹泻、形成溃疡。若进入肺内,会引起咯血、哮喘。若进入尿道,可引起尿路炎症。因此,白糖最好不要生吃,食用前应该进行加热处理(一般加热到70℃左右保持3分钟就可以了)。

四忌生吃蜂蜜。蜜蜂在酿制蜂蜜时,常常采集一些有毒的花粉,这些有毒的花粉酿进蜂蜜以后,人吃了生蜜就容易发生中毒。另外蜂蜜在收获、运输、保管的过程中,又很容易被细菌污染。因此,生蜂蜜不可食用。

五忌生吃新鲜木耳。新鲜木耳含叶林类光感物质,生吃新鲜木耳后,可引起日光性皮炎,严重者出现皮肤瘙痒、水肿和疼痛。

六忌生吃豆浆。豆浆味美可口,其营养价值并不比牛奶低。但饮用未煮沸的豆浆,可引起全身中毒。因为生豆浆中含有一些有害成分----抗胰蛋白酶、酚类化合物和皂素等。抗胰蛋白酶影响蛋白质的消化和吸收;酚类化合物可使豆浆产生苦味和腥味;皂素刺激消化道,引起呕吐、恶心、腹泻,从而破坏红细胞,产生毒素,以致引起全身中毒。

七忌生吃河鱼。肝吸虫卵在河塘的螺蛳体内发育成尾蚴,并寄生在鱼体内,若吃了生的河鱼,肝吸虫就会进入人体发育成虫,可使人体产生胆管炎,甚至发展成肝硬化。

八忌生吃螃蟹和龙虾。生螃蟹带有肺吸虫的囊蚴虫和副溶性弧菌,龙虾则是肺吸虫的中间寄主,生吃螃蟹和龙虾后,肺吸虫进入人体,会造成肺脏损伤,严重者会使肠道发炎或肠道水肿充血。

九忌吃生鸡蛋。蛋清所含的抗生物蛋白在肠道内与生物素结合后,会阻碍人体对生物素的吸收。生鸡蛋还常含有沙门氏菌,会使人呕吐、腹泻。

十忌生吃豆角。豆角包括扁豆、芸豆、菜豆、刀豆、四季豆等。吃豆角容易中毒,是因为豆角里面含有一种毒蛋白“凝集素”,这种物质在成熟的或较老的豆角中最多。豆角应该煮沸或用急火加热10分钟以上,这样“凝集素”就会被除掉。吃炒豆角或者用豆角做馅时,要充分加热,吃凉拌豆角也要煮10分钟
标签:生吃, 不宜
作者 jiangxixfwan 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 | 
 
2007.08.03 11:42:00 
 通过SQL Server在服务器上存取文件   

  
 原文网址: http://www.yourblog.org/Data/20061/411359.html
 
 日期:2006年1月15日 星期日 天气:晴朗 作者:ThornBird
通过SQL Server在服务器上存取文件
发表:2006-1-15 15:26:05 出处:你的博客网(yourblog.org)

--------------------------------------------------------------------------------

    前些天改公司的程序,发现员工基本资料表中的照片字段竟是字符型,只保存照片的路径。我们的程序一般是用远程桌面访问,或是把程

序所在目录映射为本地盘并运行程序。这样一来,图片只能放在服务器上才能进行显示、打印,且如果采取映射本地盘的方式,每个客户端应

该都必须映射为相同的本地盘(或者把照片放在程序所在目录下,保存相对路径)。于是我把照片字段改成text类型,把文件存储到数据库中

,不过一个同事不同意我的做法,于是只好作罢。但后来我想到其实可以把照片“上传”到服务器上,需要使用时再“下载”到本地,然后数

据库中保存文件在服务器上的实际路径。通过查资料,我知道了可以用 sp_makewebtask 存储过程把查询结果保存到服务器上,遗憾的是它是

保存为网页的格式,而不能把文件照原样保存到服务器上。不过无所谓了,只要“下载”时再对文件结构进行分析就可以了,这样一来就可以

实现“上传”的功能了。至于“下载”,可以用 BULK INSERT 语句来实现。
 
    我的思路是这样的:把文件进行编码后保存到 SQL Server 的临时表中,然后执行 sp_makewebtask 存储过程保存文件;使用“上传”的

文件时则可以用 BULK INSERT 语句把文件存入临时表中,然后再通过查询得到文件的全部内容,然后进行分析和解码后进行保存。上面两个步

骤都需要有足够的权限。这就是我的 ServerFileAccess 类的基本思路,这个类主要有下面几个方法:

        SetConnectString  设置连接字符串
        SetConnectHandle  设置连接句柄
        Connect  与 SQL Server 建立连接
        Disconnect   断掉连接
        UploadFile   把客户端的文件“上传”到服务器上
        GetFileFromServer   获取服务器上的文件
        GetUploadFileFromServer   获取之前“上传”到服务器上的文件
        DownloadFile   “下载”服务器上的指定文件到本地
        DownloadUploadFile  “下载”之前“上传”到服务器上的文件到本地

下面是 ServerFileAccess 类的代码及演示:
 
    ServerFileAccess.prg
 
DEFINE CLASS ServerFileAccess AS Custom

    PROTECTED ConnectString
    PROTECTED ConnectHandle
    PROTECTED Connected
    PROTECTED FLAG_START
    PROTECTED FLAG_END
    PROTECTED ROWTERMINATOR
   
    PROCEDURE Init
        THIS.ConnectString = ""
        THIS.ConnectHandle = -1
        THIS.Connected = .F.
        THIS.FLAG_START = "<<START>>"
        THIS.FLAG_END = "<<END>>"
        THIS.ROWTERMINATOR = CHR(13)
    ENDPROC
   
    PROCEDURE Destroy
        IF THIS.Connected = .T.
            THIS.Disconnect()
        ENDIF
    ENDPROC
   
    PROCEDURE SetConnectString
        LPARAMETERS cServer, cDatabase, cUserId, cPassword
        THIS.ConnectString = "Driver=SQL Server;" + ;
                             "Server=" + cServer + ";" + ;
                             "Database=" + cDatabase + ";" + ;
                             "Uid=" + cUserId + ";" + ;
                             "Pwd=" + cPassword
    ENDPROC
   
    PROCEDURE SetConnectHandle
        LPARAMETERS nConnectHandle
        THIS.ConnectHandle = nConnectHandle
    ENDPROC
   
    PROCEDURE Connect
        PRIVATE nDispLogin
        nDispLogin = SQLGETPROP(0, "DispLogin")
        = SQLSETPROP(0, "DispLogin", 3)
        IF THIS.ConnectHandle > 0
            RETURN .T.
        ENDIF
        THIS.ConnectHandle = SQLSTRINGCONNECT(THIS.ConnectString)
        = SQLSETPROP(0, "DispLogin", nDispLogin)
        IF THIS.ConnectHandle > 0
            THIS.Connected = .T.
            RETURN .T.
        ENDIF
        RETURN .F.       
    ENDPROC
   
    PROCEDURE Disconnect
        PRIVATE lReturnValue
        lReturnValue = .T.
        THIS.ConnectString = ""
        TRY
            = SQLDISCONNECT(THIS.ConnectHandle)
        CATCH
            lReturnValue = .F.
        ENDTRY
        THIS.ConnectHandle = -1
        Connected = .F.
        RETURN lReturnValue
    ENDPROC
   
    PROCEDURE UploadFile
        LPARAMETERS cClientFile, cServerFile
        PRIVATE lReturnValue, nReturnValue, cTableName, cSQL, cDrop,
        cFileData, cRandKey
        lReturnValue = .F.
        nReturnValue = -1
        cTableName = "##" + SYS(2015)
        cSQL = [CREATE TABLE ] + ;
               cTableName + ;
               [ (RandKey char(8) NULL, FileData text NULL)]
        cDrop = [DROP TABLE ] + cTableName
        cFileData = THIS.FLAG_START + ;
                    STRCONV(FILETOSTR(cClientFile), 15) + ;
                    THIS.FLAG_END
        cRandKey = SYS(3)
        = SQLEXEC(THIS.ConnectHandle, cSQL)
        cSQL = [INSERT INTO ] + cTableName + ;
               [ (RandKey, FileData)] + ;
               [ VALUES] + ;
               [ (’] + cRandKey + [’, ’] + cFileData + [’)]
        nReturnValue = SQLEXEC(THIS.ConnectHandle, cSQL)
        IF nReturnValue < 0
            = SQLEXEC(THIS.ConnectHandle, cDrop)
            RETURN lReturnValue
        ENDIF
        cSQL = [EXECUTE master..sp_makewebtask ] + ;
               ["] + cServerFile + [", ] + ;
               ["SELECT FileData FROM ] + cTableName + ;
               [ WHERE RandKey = ’] + cRandKey + [’"]
        nReturnValue = SQLEXEC(THIS.ConnectHandle, cSQL)
        IF nReturnValue > 0
            lReturnValue = .T.
        ENDIF
        = SQLEXEC(THIS.ConnectHandle, cDrop)
        RETURN lReturnValue
    ENDPROC
   
    PROCEDURE GetFileFromServer
        LPARAMETERS cServerFile
        PRIVATE cFileData, nReturnValue, cTableName, cSQL, cDrop, ;
                cCurrentAlias, cAlias, i
        cFileData = ""
        nReturnValue = -1
        cTableName = "##" + SYS(2015)
        cSQL = [CREATE TABLE ] + ;
               cTableName + ;
               [ (FileData text NULL)]
        cDrop = [DROP TABLE ] + cTableName
        nReturnValue = SQLEXEC(THIS.ConnectHandle, cSQL)
        IF nReturnValue < 0
            RETURN cFileData
        ENDIF
        cSQL = [BULK INSERT ] + cTableName + ;
               [ FROM ’] + cServerFile + [’] + ;
               [ WITH (ROWTERMINATOR = ’] + ;
               THIS.ROWTERMINATOR + [’)]
        nReturnValue = SQLEXEC(THIS.ConnectHandle, cSQL)
        IF nReturnValue < 0
            = SQLEXEC(THIS.ConnectHandle, cDrop)
            RETURN cFileData
        ENDIF
        cCurrentAlias = ALIAS()
        cAlias = SYS(2015)
        cSQL = [SELECT FileData FROM ] + cTableName
        nReturnValue = SQLEXEC(THIS.ConnectHandle, cSQL, cAlias)
        = SQLEXEC(THIS.ConnectHandle, cDrop)
        IF nReturnValue < 0
            RETURN cFileData           
        ENDIF
        SELECT (cAlias)
        GO TOP
        SCAN
            cFileData = cFileData + ;
                        IIF(ISNULL(FileData) = .T., "", ALLTRIM(FileData)) + ;
                        IIF(RECNO() = RECCOUNT(), "", THIS.ROWTERMINATOR)
        ENDSCAN
        USE IN (cAlias)
        IF EMPTY(cCurrentAlias) = .F.
            SELECT (cCurrentAlias)
        ENDIF
        RETURN cFileData
    ENDPROC
   
    PROCEDURE GetUploadFileFromServer
        LPARAMETERS cServerFile
        PRIVATE cFileData, nStart, nLength
        cFileData = ""
        cFileData = THIS.GetFileFromServer(cServerFile)
        IF EMPTY(cFileData) = .T.
            RETURN cFileData
        ENDIF
        nStart = AT(THIS.FLAG_START, cFileData) + LEN(THIS.FLAG_START)
        nLength = AT(THIS.FLAG_END, cFileData) - nStart
        cFileData = SUBSTR(cFileData, nStart, nLength)
        cFileData = STRCONV(cFileData, 16)
        RETURN cFileData
    ENDPROC
   
    PROCEDURE DownloadFile
        LPARAMETERS cServerFile, cClientFile
        PRIVATE cFileData
        cFileData = THIS.GetFileFromServer(cServerFile)
        = STRTOFILE(cFileData, cClientFile)
        RETURN .T.
    ENDPROC
   
    PROCEDURE DownloadUploadFile
        LPARAMETERS cServerFile, cClientFile
        PRIVATE cFileData
        cFileData = THIS.GetUploadFileFromServer(cServerFile)
        = STRTOFILE(cFileData, cClientFile)
        RETURN .T.       
    ENDPROC

ENDDEFINE

 
    ServerFileAccess_Demo.prg
 
SET PROCEDURE TO ServerFileAccess.prg
oServerFileAccess = CREATEOBJECT("ServerFileAccess")
oServerFileAccess.SetConnectString("127.0.0.1", "master", "sa", "123456")
oServerFileAccess.Connect()

*-- 演示 UploadFile 方法
cSource = GETFILE("", "上传文件(&F):", "选择", 0, "请选择要上传到服务器上的文件")
cTarget = ALLTRIM(INPUTBOX("保存路径(含文件名):", "请输入上传路径及目标文件名"))
? oServerFileAccess.UploadFile(cSource, cTarget)

*-- 演示 DownloadUploadFile 方法
cFileName = PUTFILE("保存文件(&F)", "", JUSTEXT(cSource))
? oServerFileAccess.DownloadUploadFile(cTarget, cFileName)

oServerFileAccess.Disconnect()

标签:vfp,sql,图片
作者 jiangxixfwan 阅读全文 |  评论()  | 人气() |  引用()  | 推荐 |