vfp9.0如何把BMP图片存储到sqlserver 自增长字段的Image字段中

有关VFP数据表导入、显示、打印图片的问题
例一:VFP数据表如何插入图片?
希望图片是内嵌在库文件中的,而非外链单独的图片文件夹。
1、在数据库“表”(如 ZPK.dbf)中增加类型为“备注型(二进制)的字段名,如“PIC”
2、新建立一个“表单”,在表单中创建一个“命令按钮(COMMAND)”
3、在“命令按钮(COMMAND)性属的“Click”事件中加入以下语句
JPGFile = GETFILE('JPG,BMP', '照片为 JPG格式',& '保存',
1, '选择JPG格式照片')
IF LEN(JPGFile) &
replace pic with filetostr(JPGFile) in ZPK.dbf
这样,就可以将所选择的照片装入数据库“表”(如 ZPK.dbf)中了,以后需要直接从“表”(如 ZPK.dbf)中调用就是了。
提问者评价
&例二:vfp中照片批量导入问题
我在数据库中建了一个名为 135z143.dbf
的表,其中“xh”字段下有如:“001,002,003......”的数据 “bj”字段下有如:“0.....”的数据 “pic”字段由于存放照片(通用型)
照片以bj+xh的方式命名(bmp格式)如:“136065....”,存放路径为 D:\学生证\08秋\bmp
因为照片很多,分别导入很费时,编写了如下程序:
135z143.dbf
&&打开135z143.dbf数据表
XH = trim(135z143.xh) &&将135z143表中字段名为xh的值赋给XH
BJ = trim(135z143.bj) &&将135z143表中字段名为bj的值赋给XH
'D:\学生证\08秋\bmp\'+BJ+XH+'.bmp'
程序运行到“XH = trim(135z143.xh) &&将135z143表中字段名为xh的值赋给XH”
时总是提示程序错误“函数名缺少”,我怎么也找不到错误原因,请各位高人指点。
此问题经过多次尝试已经解决,我是将XH=trim(xh)改成XH=allt(xh),就可以批量导入了,谢谢两位的关注。
如果像hmjnt40所说的将pic 字段改成字符型在我做的标签里边无法打印照片,当然我没有从头设计标签了再试了。
请尝试下面几种方法,看看行不行,再跟个帖,让我也知道哪种方法可以,或者都不能解决。
1、trim(135z143.xh)的左右括号可能是全角的,改为半角括号。
2、将trim(135z143.xh)中135z143.去掉,直接写xh。
3、将trim()改为rtrim()或alltrim()。
4、APPEND语句改为 APPEND GENERAL pic FROM&
('D:\学生证\08秋\bmp\'+BJ+XH+'.bmp')
提问者评价
例三:在vfp中,如何批量导入照片
建立了一个学生表,有姓名,考生号和身份证号及照片等四个字段,我想把学生的照片对应上传到表的pic(照片)字段中,我该怎么来实现呢?照片是以考生号命名的。
我的照片格式是JPG的,采用通用字段。另外,照片加进去后,如何批量修改照片的名字呢,想批量将照片的名称改为身份证号的字段。 问题的重点,是如何将数据库中上传的照片批量修改照片的名称为其他字段(身份照号)的字段呢?
23:29你存储照片的字段
PIC 是存储照片本身通用字段 还是存储照片路径的 字符型字段呢
可用以下程序
priv picpath& picfile&
&& 定义一个私有变量 存放 照片的路径 和文件
picpath=' d:\zhaopian\'
sele 学生表
& picfile=picpath+allt(考生号)+‘.bmp’
& if& file(picfile)
append& general&
学生表.pic& from&
& ** 如果是通用字段 就用这一句******
& *& repl&
学生表.pic with picfile
& *& 如果只是存储路径 就用repl ,命令
&& wait window&
nowait& picfile+' 不存在'
注意& VFP60一下 的通用型字段 存储图像文件时 ,如果要打印 就只能使用
BMP格式,否则只能显示,而不能打印
建议表中只存储 照片的路径, 文件还是放在磁盘上 , 因为表中使用了通用备注型字段存储图像了 很容易损坏
##############################################
如果是 JPG 就用
picfile=picpath+allt(考生号)+‘.JPG’
另外, 照片加入了通用字段以后就不是一个个的文件了, 就没有名字了要访问某同学的照片 是用&
学生表.pic 来替代 无法更改她的名字为 身份证字段,
如果你想更改原来存在磁盘上的图像文件, 使用 COPY FILE 命令的
更改这句 append& general&
学生表.pic& from&
为& COPY FILE (picfile) TO
(picpath+allt(身份证号)+‘.JPG’)
能提出此问题,说明阁下水平不错,按我介绍的办法定能成功,可结合其他函数设计出更灵活的程序
1\创建含有图片的字段(如:表1.(照片 通用型;姓名,字符型)
2\将要上传的照片,改成以姓名作为文件名,并统一转换成同一格式,保存到规定的目录如:D:\zp\张三.bmp,李四.bmp(表中有姓名为张三,李四等和照片一致)
3\假如表单1中有"上传"command按钮,click事件代码如下:
SELECT 表1
DO WHILE .not.eof()
wj="d:\zp\"+ALLTRIM(姓名)+".bmp"
IF FILE("&wj")
&&如果照片存在
APPEND GENERAL 照片 FROM &wj
&&追加到照片字段里
MESSAGEBOX("没有找到"+ALLTRIM(姓名)+"照片!",0,"提示信息") &&弹出未找到相应的照片
mESSAGEBOX("照片上传结束!",0,"提示信息")
这样,全部的照片可以自动上传,有变化的话,只要把照片换一下(名称不变,还用原来的名字),再重新上传一次就搞定了.
例四:vfp中如何制作可以显示照片的报表
我现在有一个带有学生信息的dbf表,另外有表中每个学生的照片(jpg格式),照片的命名与学生的学号对应,请问如何制作一个报表,可以显示每个学生的基本信息和照片.
1、设计一报表,并在数据环境里添加有学生信息的表
2、在报表里设计一个OLE的图片控件
3、在该控件的“图片来源”的“文件”栏内输入:路径(如:'C:\zp\')+学号+'.jpg'。
如果是VF9.0版本,在该控件的“普通”属性的“控件源类型”选择表达式或变量名,“控件源”输入:路径+学号+'.jpg'
4、为避免有记录而无照片预览出错的情况,在控件的打印条件里输入:file(路径+学号+'.jpg')
注意:路径可为绝对路径也可为相对路径,但都要在最后加'\',如'c:\zp'要改成'c:\zp\'
例五:用vfp制作带照片的表单
快毕业了,我想给我们班的同学作一个表单,现在只会整一些姓名、性别、年龄、个人资料等简单的信息,我想问一下怎么放照片,(我们的浏览方式不是点下一页这样挨个来,而是点每个人的名字,比如看完第一个人的就可以看第5个人的不用一个个点)怎么让照片也跟着变怎么办?说详细点,还有,能不能改变表单的背景不是简单的换色,是放一些图案,请教教我,谢谢了~
额,我可是刚学做表单,JACK的方法有些深奥哦,就是没看太懂,SHEMING的倒是懂了,就是用起来不行啊,放照片的命令我整进去了,就是显示不出来,还有,怎么点一个人,看一个人的照片?还有要显示某个人的文字信息用@XX,XX say "xxxxxxx"行不?还有什么更好的方法不
1、我们的浏览方式不是点下一页这样挨个来,而是点每个人的名字,比如看完第一个人的就可以看第5个人的不用一个个点。
对于这个问题,可以使用一个下拉列表框(combo)控件,在这个控件中是班上同学的姓名,点哪个名字,下面的文本框中则显示那个的信息。
可以使用image控件,然后在按钮的代码中加上语句:
thisform.image1.picture="pic\李明.jpg"
&&意思就是image1控件的picture属性为pic这个目录下的李明.jpg这张照片
也是设置表单的picture属性为某张图片。
提问者评价
很抱歉,之前是我笨了,没反应过来,我现在会了太谢谢了3Q~
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&*--保存1、将图片文件用 FileToStr()转成字符A。2、再用 Strconv(&字符A&,13)将字符A转成base64编码数据的字符B。3、将字符B保存到SQL Server的Text类型字段或者Access的备注字段。&*--图片例子* 保存lcTextString=Strconv(Filetostr(&路径/图片名A&),13) && base64编码数据,可以将此数据(lcTextString)保存* 还原=Strtofile(Strconv(lcTextString或表字段,14),&路径/图片名B&)& && 将字符还原base64编码前数据,还原成文件Thisform.Image1.Picture=&路径/图片名B& && 将还原后的图片覆给Image控件的的Picture属性*或Thisform.Image1.PictureVal=Strconv(lcTextString,14) && 将字符还原base64编码前数据后直接覆给Image控件的PictureVal属性(VFP9.0)&*--注:以上方法除了可以对图片文件操作外,对其他文件如Word,文本,Exe,音频等文件均可,但文件不要过大,否则速度慢。此方法也适用于DBF表的Memo字段(推荐用二进制备注字段,普通备注字段,在代码页有变化的时候会自动转变的,会破坏字段内容,二进制备注字段就不会。)。如果是VFP9.0建议改为使用 Blob 类型字段,它可以存储任何类型的数据。这样不需要使用 ActiveX,直接使用 vfp 自带的 Image 控件的 PictureVal 属性即可显示 bmp/gif/png/jpg/tif 等格式的图片。 Blob 类型字段要比上面方法好,因为前一种方法有一个缺点就是转成Base64后,数据变大了,不利于网络负载。至于Blob类型字段的文件存储和还原 *存储 Replace blob字段 With Filetostr(&D:/文件全名&) *还原 =Strtofile(blob字段,&d:/文件全名&) 使用通用字段是已过时的技术,而且存在很多的弊病,例如:放入通用字段的图像没有绝对可靠的方法重新再保存为磁盘文件。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:76341次
积分:1361
积分:1361
排名:第14812名
原创:59篇
转载:34篇
评论:10条
(1)(1)(3)(1)(4)(4)(3)(2)(1)(5)(1)(1)(1)(1)(1)(3)(1)(2)(4)(4)(5)(1)(2)(6)(1)(2)(1)(2)(4)(1)(1)(2)(1)(2)(5)(13)VFP教材_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:855.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢404 Not Found
404 Not Found
nginx/1.4.4VFP中处理BMP图片
&在VFP编程中我们经常需要对BMP位图文件进行操作,然而我相信90%以上的foxer们仅仅是停留在位图文件的显示上面,在碰到需要编程绘制一张属于自己的位图的时候往往不知所措,在这里我给大家简单介绍下如何用VFP绘制属于自己的位图文件,首先简单介绍下BMP文件的基本格式:
BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。在系统中以BMP为扩展名保存。
打开Windows的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和24位位图。这是最普通的生成位图的工具,在这里讲解的BMP位图形式,主要就是指用画图生成的位图。
现在讲解BMP的4个组成部分:
1.文件头信息块
:文件标识,为字母ASCII码"BM"。
:文件大小。
:保留,每字节以"00"填写。
000A-000D:记录图像数据区的起始位置。各字节的信息依次含义为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)。
2.图像描述信息块
000E-0011:图像描述信息块的大小,常为28H。
:图像宽度。
:图像高度。
001A-001B:图像的plane总数(恒为1)。
001C-001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。
001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩)。
:图像区数据的大小。
:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。
002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以00H填写。
002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。
  颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。其中,每4字节表示一种颜色,并以B(蓝色)、G(绿色)、R(红色)、alpha(32位位图的透明度值,一般不需要)。即首先4字节表示颜色号1的颜色,接下来表示颜色号2的颜色,依此类推。
4.图像数据区
  颜色表接下来位为位图文件的图像数据区,在此部分记录着每点像素对应的颜色号,其记录方式也随颜色模式而定,既2色图像每点占1位(8位为1字节);16色图像每点占4位(半字节);256色图像每点占8位(1字节);真彩色图像每点占24位(3字节)。所以,整个数据区的大小也会随之变化。究其规律而言,可的出如下计算公式:图像数据信息大小=(图像宽度*图像高度*记录像素的位数)/8。
  然而,未压缩的图像信息区的大小。除了真彩色模式外,其余的均大于或等于数据信息的大小。这是为什么呢?原因有两个:
  1.BMP文件记录一行图像是以字节为单位的。因此,就不存在一个字节中的数据位信息表示的点在不同的两行中。也就是说,设显示模式位16色,在每个字节分配两个点信息时,如果图像的宽度位奇数,那么最后一个像素点的信息将独占一个字节,这个字节的后4位将没有意义。接下来的一个字节将开始记录下一行的信息。
2.为了显示的方便,除了真彩色外,其他的每种颜色模式的行字节数要用数据"00"补齐为4的整数倍。如果显示模式为16色,当图像宽为19时,存储时每行则要补充4-(19/2+1)%4=2个字节(加1是因为里面有一个像素点独占了一字节)。如果显示模式为256色,当图像宽为19时,每行也要补充4-19%4=1个字节。还有一点我要申明,当屏幕初始化为16或256色模式时,一定要设置调色板或修正颜色值,否则无法得到正确的图像颜色。
以上是BMP位图文件的基本组成结构,简单的说一张BMP文件就是
文件头+图像数据
组成的,所以首先我们先用VFP来创建一个BMP文件头:
假定BMP文件的高度为y、宽度为x,(姑且把位图比作XY坐标轴的一个区域),我们按照最简单的文件头来设定:
在定义这个文件头之前我们先自己写个十进制数据转换为二进制字符的函数:
FUNCTION bin2str(bin as long)
For i=1 To 4
k1='0x'+Subs(Tran(bin,"@0"),9,2)
k2='0x'+ Subs(Tran(bin,"@0"),7,2)&
k3='0x'+ Subs(Tran(bin,"@0"),5,2)&
k4='0x'+ Subs(Tran(bin,"@0"),3,2)&
retu Chr(&k1)+Chr(&k2)+Chr(&k3)+Chr(&k4)
在二进制文件里,数值的存储是按照从低位到高位的顺序来填充的,这个函数很简单,就是把一个数字比如123先转换为十六进制Tran(123,"@0")=
0x0000007B,然后得到的字串就是
Chr(0x7B)+chr(0x00) +chr(0x00) +chr(0x00)
,引入这个函数的目的是为了简化下面的一些程序书写。
现在开始创建BMP文件头:dime
BmpHeader[12] &&为了使这个文件头更加清晰,我这里用数组来定义
BmpHeader[1]='BM'& &&2字节,BMP文件标识,固定值。
BmpHeader[2]= bin2str(Int((x*3+3)/4)*4*y+54)&
&&4字节,存储图像大小信息。实际上就是文件头的54个字节加上图像数据区的字节数,按道理,一个像素是RGB
3字节组成,所以图像大小是x*y*3+54,但是BMP位图图像规定数据区每行的像素的个数必须是4的倍数,如果图像宽度刚好是4的倍数,那么这个数值就是x*y*3+54,如果不是4的倍数那么要用chr(0)来补齐,所以这里要写个通用的表达式:Int((x*3+3)/4)*4*y+54,例如x=100,y=200,那么Tran(Int((x*3+3)/4)*4*y+54,"@0")=0x0000EA96。
BmpHeader[3]=Chr(0)+Chr(0)+Chr(0)+Chr(0)&
&&4字节,固定值,为保留字节,每字节以"00"填写即可。
BmpHeader[4]=Chr(54))+Chr(0)+Chr(0)+Chr(0)&
&&4字节,图像信息的开始位置,我这里定义的这个文件头的大小是54字节,从第54字节开始就是图像信息了,所以这里是Chr(54).
BmpHeader[5]=chr(0x28)+chr(0)+chr(0)+chr(0)&
&&4字节,图像描述信息块的大小,常为28H。
BmpHeader[6]=bin2str(x)  &&4字节,位图宽度。
BmpHeader[7]= bin2str(y) &&
4字节,位图高度。
BmpHeader[8]=chr(1)+chr(0) &&2字节,图像的plane总数(恒为1)。
BmpHeader[9]=chr(24)+chr(0) &&2字节,记录像素的位数,很重要的数值,图像的颜色数由该值决定,这里定义的是24位位图。
BmpHeader[10]=Chr(0)+Chr(0)+Chr(0)+Chr(0) &&4字节,数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩。
BmpHeader[11]=bin2str(Int((x*3+3)/4)*4*y)&
&&4字节,图像区数据的大小,计算方式上面已经说了。
BmpHeader[12]= Chrt(Spac(16), Chr(32),Chr(0))
 &&剩下的16字节全部以CHR(0)来填写就可以了。至此,一个24位位图的基本文件头我们就定义结束了.
BmpHeader=''
For i=1 to 12
BmpHeader= BmpHeader+ BmpHeader[i]
接下来是数据区了,数据区有个特别需要注意的地方就是:
位图保存时扫描顺序是从下至上,从左至右,即在位图数据区,位图第一行保存在位图数据区的最后,而位图最后一行保存在位图数据区的开始。
比如我们现在制作一个宽210高110的空白位图文件,那么就是这样了:
BmpHwnd=fcrea('位图.bmp')
Fwrite(BmpHwnd ,BmpHeader) &&写入文件头Fwrite(BmpHwnd
,BmpBody)& &&写入图像数据
Fclose(BmpHwnd)
现在再说下这里的BmpBody有一点需要注意:Windows要求每一行的数据的长度必须是4Bytes的整数倍,如果不是,要以值为0的字节补充,如果读取的时候不处理,会得到一个倾斜的图像。举例:一张479*360的24位色BMP图片,宽度是479个像素,每一行的数据长度是479*3(个字节用于RGB三色)
=1437,不是4的倍数,所以,在这行数据的后面,要补上3个字节,值为0,凑成1440,达到4的倍数,然后,才是下一行的数据。在做程序的时候,需要把这些冗余点的值舍去。
至此,我们就可以写一个创建一个宽度为x,高度为y的空白位图的自定义函数了。(附后)
现在我们需要做的是在一张空白位图上画点了,我们知道了位图的图像数据是按照从下到上、从左到右的方式来排列的,刚好符合数学里的XY轴的数据模型,而且我们在做一些数据图的时候也正式按照XY轴的数据模型来实现的(我想微软之所以按照这样的方式来排列数据也正是因为此种道理吧,呵呵)。
首先我们先自己写一个可以在位图任意行任意列画一个点的函数,从文件头结束位置开始就是图像数据了,
每个点占RGB三字节,所以我们只要根据行和列就能确定这个点在图像数据区所在的开始位置,然后改写这个点为指定的颜色,那么我们相当于画点了。
图像的基本要素是点和线,画线的的算法好坏是直接影响图像格栅化质量的根本,我们在这里引入比较适合BMP位图的DDA算法,
DDA称为数值微分画线算法,是直线生成算法中最简单的一种,其它还有breshenham算法、中点算法等等。原理相当简单,就是最直观的根据斜率的偏移程度,决定是以x为步进方向还是以y为步进方向。然后在相应的步进方向上,步进变量每次增加一个像素,而另一个相关坐标变量则为Yk_1=Yk+m(以x为步进变量为例,m为斜率),代码附后。
至此我们就了解了BMP位图的三个最基本的低级操作,创建位图、画点、画线。
附:本文中的三个函数
****制作:行者孙
VFP应用程式算法群()****FUNCTION CreateBmp(x as long,y as long,filename as
*x:图像宽 y:图像高 filename:文件名
*功能:创建一个任意尺寸的空白24位位图图像(分辨率为:96X96)
BmpHwnd=fcreat(filename)
Fwrite(BmpHwnd,'BM')
Fwrite(BmpHwnd, bin2str(Int((x*3+3)/4)*4*y+54))
Fwrite(BmpHwnd, Chr(0)+Chr(0)+Chr(0)+Chr(0))
Fwrite(BmpHwnd, Chr(54)+Chr(0)+Chr(0)+Chr(0))
Fwrite(BmpHwnd, chr(0x28)+chr(0)+chr(0)+chr(0))
Fwrite(BmpHwnd, bin2str(x))
Fwrite(BmpHwnd, bin2str(y))
Fwrite(BmpHwnd, chr(1)+chr(0))
Fwrite(BmpHwnd, chr(24)+chr(0))
Fwrite(BmpHwnd, Chr(0)+Chr(0)+Chr(0)+Chr(0))
Fwrite(BmpHwnd, bin2str(Int((x*3+3)/4)*4*y))
Fwrite(BmpHwnd, REPL(CHR(0),16))
For Bmp_i=1 to y
Fwrite(BmpHwnd,
REPL(CHR(255),x*3)+REPL(CHR(0),(4-(x*3)%4)%4))
RETURN BmpHwnd
FUNCTION writebmp(BmpHwnd,x as Long,y as
Long ,R as long,G as long,B as long)
*按照xy轴正向实现改写位图的一个点
*fname:位图文件名 X:x轴坐标 Y:y轴坐标
RGB:颜色值FSEEK(BmpHwnd,0x0A)
bStar=str2bin(FREAD(hwnd,4))&&图像数据的开始位置
FSEEK(hwnd,0x12)
bWidth=str2bin(FREAD(hwnd,4))&&获取图像宽度(列)
FSEEK(hwnd,0x16)
bHeight=str2bin(FREAD(hwnd,4))&&获取图像高度(行)
FSEEK(hwnd,bStar+(y-1)*(3*bWidth+(4-(3*bWidth)%4)%4)+(x-1)*3)&&(4-(3*bWidth)%4)%4为每行的补位数
FWRITE(hwnd,CHR(B)+CHR(G)+CHR(R))
FUNCTION draw_line(BmpHwnd,x1 as Integer,y1 as Integer,x2 as
Integer,y2 as Integer,R as long,G as long,B as long)
*基于DDA算法实现在两点之间画一条直线
IF abs(x2-x1) & abs(y2-y1)
length = abs(x2-x1)
&length = abs(y2-y1)
Dx = (x2-x1)/length
Dy = (y2-y1)/length
x0 = INT(x1+0.5*Sign(Dx))
y0 = INT(y1 + 0.5*Sign(Dy))
Bmp_mi = 1
DO WHILE& Bmp_mi&=length
writebmp(hwnd,INT(x0)+Sign(x0),INT(y0)+Sign(y0),R,G,B)
x0= x0 + Dx
y0= y0 + Dy
Bmp_mi=Bmp_mi+1
function bin2str(bin as long)
k1='0x'+Subs(Tran(bin,"@0"),9,2)
k2='0x'+ Subs(Tran(bin,"@0"),7,2)&
k3='0x'+ Subs(Tran(bin,"@0"),5,2)&
k4='0x'+ Subs(Tran(bin,"@0"),3,2)&
retu Chr(&k1)+Chr(&k2)+Chr(&k3)+Chr(&k4)
FUNCTION str2bin(bStr as string)
bstr=STRCONV(bstr,15)
FOR i=LEN(bstr)-1 TO 1 STEP -2
bin=bin+SUBSTR(bstr,i,2)
应用举例:
创建一个宽为300,高210的24位位图文件,并在x=10
y=30,x=200,y=100的两点间画线
hwnd=CreateBmp(300,210,'111.bmp')
draw_line(hwnd,10,30,200,100,0,0,255)
FCLOSE(hwnd)&&记得在写完文件后关闭哦
根据传入的股票数据画走势图
代码略,也是在根据股票数据所确定的各个点之间画线
我们这里都是空白图,如果你想酷一点,可以自己先制作一张背景图,然后在背景图的基础上进行操作,
这里我只说了画图的点线的基本操作,至于画区域图、BOX图、圆形图等等其他复杂的图像,大家可自己去发挥聪明才智,这里就不多说了,至于其他图形的算法如果不清除的话可以找我。也许有人说根本没必要这么麻烦,使用一些现成的控件或者函数库不就行了,当然是如此,但知其然不知其所依然是一个编程人员的最大禁忌!如果大家有什么不明白或者在制作图形的时候碰到了什么问题可以到
VFP应用程式算法群() 里找我一起探讨!
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
--- 行者孙---
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 sqlserver 修改字段名 的文章

 

随机推荐