从SQLServer向VFP拷贝表,第1张

从SQLServer向VFP拷贝表,第2张

在数据库操作中,有时需要将SQL Server中的表复制到VFP表中。下面介绍如何通过编程创建与SQL Server表一致的VFP表结构,然后将SQL Server表中的数据复制到VFP表中。
将SQL Server表中的数据复制到VFP表中,可以使用SQLEXEC()、SQLTABLES()和
(1)从SQL表中获取表结构信息;
⑵生成与SQL表结构相同的VFP表;
⑶将SQL中的数据复制到VFP表中。
示例代码如下:
*由于SQL Server表可能包含长字段名,而VFP自由表不支持长字段名,所以只有数据库中的表才能使用长字段名。为了保存SQL Server表中的长字段名,需要建立数据库CREATE DATABASE SQLData
*建立游标
CREATE cursor sys _ Tables(table _ name c(128),field _ name c (120),;
field _ type c (1),field _ len n (3,0),field _ dec n (3,0)]Server = MY _ Server′+ ;
'数据库= PUBS;UID = saPwd ='
*连接到SQL Server Server
gnconnthandle = sqlstringconnect(connect _ string)
如果gnconnthandle > 0
*发送USE命令,打开PUBS数据库
SqlCommand = " usepubs "
= sqlexec(gnconnthandle,SqlCommand)
*获取可在SQL Server中使用的表数
SqlConnTables = SQL tables(SQL tables 所以SQL的条件子句中的表类型table_type参数设置为table
*否则会得到系统表和视图
select table _ name from SQL result;
WHERE UPPER(all trim(Table _ Type))= " Table ";

INTO游标SQL _ Tables
SELECT SQL _ Tables
INCnt = 0
DO WHILE!Eof ()
*生成命令字符串
sqlcommand = " select * from "+all trim(table _ name)
*执行存储过程,获取数据并放入临时游标
= sqlexec (gnconnhandle,sqlcommand, TMP _ SYS _ DATA')
*选择包含数据的游标
选择TMP _ SYS _ DATA
*使用DBF()函数获取临时文件的实际名称
This _ file = DBF ()
*使用AFIELDS获取函数字段名和字段属性
= a fields(test _ values)
*并将字段数据保存在数组maketab
Dimension maketab[alen(test _ values,1)、 6]
*用字段数据填充数组元素
for i = 1 to alen (test _ values,1)
maketab [i,1] = test _ values [i,1]
maketab [i,2] = 2]
maketab[i,3]=test_vals[i,3]
maketab[i,4]=test_vals[i,4]
maketab[i,5]= maketab[I,5] [/Br/]" From Array Maketab "[/Br/]& execute _ cmd[/Br/]*选择新建立的表[/Br/]current _ table = ALL trim(SQL _ Tables . table _ name)[/Br/]Select(current _ table)[/Br/]*从临时文件添加数据[/Br/]append From & this _ file[/Br/]Select SQL _ Tables[/Br/]skip[/Br/]enddo[/Br/]= SQL discon(gnConnHandle)[/Br 执行上述代码后,会生成一个名为Sqldata.dbc的VFP数据库,数据库中包含的表是SQL。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 从SQLServer向VFP拷贝表

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情