SPT指令集Word下载.docx
《SPT指令集Word下载.docx》由会员分享,可在线阅读,更多相关《SPT指令集Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
[,CursorName])
同步,异步将数据源指定表的列信息存放到VisualFoxPro光标中。
12.SQLTABLES(nConnectionHandle[,cTableTypes][,cCursorName])
同步,异步将数据源中表的信息存放到VisualFoxPro光标中。
13.SQLCOMMIT(nConnectionHandle)
异步提交一项事务。
14.SQLROLLBACK(nConnectionHandle)
异步取消当前事务处理过程中所做全部处理。
15.SQLCONNECT([DataSourceName,cUserID,cPassword|cConnectionName])DataSourceName指定ODBC.ini文件中定义的数据源的名称;
cUserID注册到数据源的用户名称;
cPassword资料源用户口令;
cConnectionName由CREATECONNECTION创建的命名连接.
数值型正整数执行成功;
-1出现连接层错误;
-2出现环境层错误.
16.SQLSTRINGCONNECT([cConnectString])
cConnectStringODBC驱动器所要求的数据源连接串,
VisualFoxPro将连接串传递给ODBC驱动器.
数值型正整数执行成功;
17.SQLDISCONNECT(nConnectHandle)
nConnectionHandle连接句柄.
数值型1执行成功;
18.SQLGETPROP(nConnectionHandle,cSetting)
nConnectionHandle连接句柄;
cSetting连接属性名称.数值型1执行成功;
19.SQLSETPROP(nConnectionHandle,cSetting[,eExpression])
nConnectionHandle连接句柄;
cSetting连接属性名称;
eExpression连接属性参数值.
20.SQLPREPARE(nConnectionHandle,cSQLCommand[,CursorName])
cSQLCommand传递到数据源的SQL语句;
CursorName存放结果集的光标名称,缺省光标名SQLRESULT.
21.SQLEXEC(nConnectionHandle[,cSQLCommand[,CursorName]])
22.SQLCANCEL(nConnectionHandle)
23.SQLMORERESULTS(nConnectionHandle)
数值型2已经没有资料;
1执行成功;
24.SQLCOLUMNS(nConnectionHandl,Tablename[,"
TableName返回其列名的表的名称;
FOXPRO|NATIVE列信息的格式;
CursorName存放结果集的光标名称,
缺省游标名SQLRESULT.
25.SQLTABLES(nConnectionHandle[,cTableTypes][,cCursorName])
cTableTypes指定一个或几个表类型,
类型有'
TABLE'
,'
VIEW'
SYSTEMTABLE'
或者数据源特定的合法的表类型标识符,必须大写,
若多个类型,各类型间以逗号分隔;
26.SQLCOMMIT(nConnectionHandle)
27.SQLROLLBACK(nConnectionHandle)
下面让我们来认识一下连接属性及连接属性参数值:
属性名称数值类型缺省值注释
Asynchronous逻辑型
可擦写.F..F.同步返回结果集;
.T.同步返回结果集.
BatchMode逻辑型
可擦写.T..F.由SQLMORERESULTS()逐个返回结果集;
.T.由SQLEXEC()一次返回所有结果集.
ConnectBusy逻辑型
只读不定.F.共享连接不忙;
.T.共享连接繁忙.
ConnectString字符型
只读不定注册连接串.
ConnectTimeOut数值型
可擦写15设置返回连接超时错误之前等待的时间(秒);
0无限期等待,并且不返回连接超时错误;
可以是0~600.
DataSource字符型
可擦写不定ODBC.INI文件中定义的数据源名称.
DispLogin数值型
可擦写11或DB_PROMPTCOMPLETE(源于FOXPRO.H),仅当缺少必要信息时才显示ODBC注册对话框;
2或DB_PROMPTALWAYS(源于FOXPRO.H),总显示ODBC注册对话框,允许在连接前更改设置;
3或DB_PROMPTNEVER(源于FOXPRO.H),从不显示ODBC注册对话框,如果缺少必要信息,会产生错误.
DispWarnings逻辑型
可擦写.F..F.不显示错误信息;
.T.显示错误信息.
IdleTimeOut数值型
可擦写0空闲超时间隔(秒),时间问隔过后,废止活动连接;
0无限期等待.
ODBChdbc数值型
只读不定外部库档(FLL档)调用ODBC可使用的内部ODBC连接句柄.
ODBChstmt数值型
只读不定外部库档(FLL档)调用ODBC可使用的内部ODBC语句句柄.
PacketSize数值型
可擦写4096连接所使用的网络包大小,调整该值可以改善性能.
PassWord字符型
只读不定连接口令.
QueryTimeOut数值型
可擦写0返回一般超时错误之前的等待时间(秒);
0无限期等待,不返回超时错误;
Transactions数值型
可擦写11或DB_TRANSAUTO(源于FOXPRO.H),自动进行远程表事务处理;
2或者DB_TRANSMANUAL(源于FOXPRO.H),事务处理通过SQLCOMMIT()和SQLROLLBACK()函数人工进行.
UserId数值型
只读不定用户标识.
WaitTime数值型
可擦写100检查SQL命令执行情况之前经过的时间(毫秒).
三.细说连接字符串(或ConnectionString):
在SQLSTRINGCONNECT([cConnectString])函数中变量cConnectString与ADO控件对象的ConnectionString属性具有相同一致的内容,为可擦写String类型,提供数据提供者或服务提供者打开到数据源连接所需要的特定信息,就MicrosoftOLEDBProviderforODBC
提供者来讲包括Provider、driver、Server、database、DSN、UID、PWD等,在以前发表的文章中已经谈过,这里再赘述一下。
1.Provider:
字符串表达式,指定OLEDB数据或服务提供者的名称。
三种提供者:
数据提供者、服务提供者和服务组件,分为两类,提供数据的提供者和提供服务的提供者。
数据提供者拥有其自己的数据并将数据以表的格式显露给应用程序。
服务提供者通过产生和消费数据将服务封装,使ADO应用程序中的功能得以扩大。
服务提供者也可以进一步定义为服务组件,服务组件必须连同其它服务提供者或组件一起工作。
①.数据提供者:
由于每个提供者都是唯一的,所以应用程序与ADO交互作用的方式在不同的提供者之间略有差别,应用时需要注意它们之间的差别。
不同数据提供者(Provider)其值归结于以下:
内容主题字符串值
ODBC数据库MicrosoftOLEDBProviderforODBCMSDASQL
Microsoft?
IndexServerMicrosoftOLEDBProviderforMicrosoftIndexServerMSIDXS
ActiveDirectoryServiceMicrosoftOLEDBProviderforMicrosoftActiveDirectoryServiceADSDSOObject
Jet数据库OLEDBProviderforMicrosoftJetMicrosoft.Jet.OLEDB.4.0
SQLServerMicrosoftOLEDBProviderforSQLServerSQLOLEDB
Oracle数据库MicrosoftOLEDBProviderforOracleMSDAORA
②.服务提供者:
要使用服务提供者,必须提供关键词。
同时,也应当知道与每个服务提供者相关联的、特定提供者的动态属性。
当前可从Microsoft获得的每个服务提供者的特定提供者(Provider)其值数据如下:
主题字符串值
MicrosoftDataShapingServiceforOLEDBMSDataShape
MicrosoftOLEDBPersistenceProviderMSPersist
MicrosoftOLEDBRemotingProviderMSRemote
2.DRIVER:
字符串表达式,表示ODBC驱动程序的名称。
它并不是ODBC驱动程序动态连接库(DLL)文件名。
对于其中的定义必须用{}括起来,名称的选择可以通过以下途径:
对于Windows9x和WindowsNT:
"
开始"
→"
设置"
→"
控制面板"
数据源(ODBC)"
ODBC数据源管理器"
驱动程序"
中
对于Windows2000:
管理工具"
可以看到下列驱动程序名称:
DriverdaMicrosoftparaarquivostexto(*.txt;
*.csv)
DriverdoMicrosoftAccess(*.mdb)
DriverdoMicrosoftdBase(*.dbf)
DriverdoMicrosoftExcel(*.xls)
DriverdoMicrosoftParadox(*.db)
DriverparaoMicrosoftVisualFoxPro
MicrosoftAccessDriver(*.mdb)
MicrosoftAccess-Treiber(*.mdb)
MicrosoftdBaseDriver(*.dbf)
MicrosoftdBaseVFPDriver(*.dbf)
MicrosoftdBase-Treiber(*.dbf)
MicrosoftExcelDriver(*.xls)
MicrosoftExcel-Treiber(*.xls)
MicrosoftFoxProDriver(*.dbf)
MicrosoftFoxProVFPDriver(*.dbf)
MicrosoftODBCforOracle
MicrosoftParadoxDriver(*.db)
MicrosoftParadox-Treiber(*.db)
MicrosoftTextDriver(*.txt;
MicrosoftText-Treiber(*.txt;
MicrosoftVisualFoxProDriver
MicrosoftVisualFoxPro-Treiber
SQLServer
SybaseSystem11
从其中选择自己所需要的驱动程序名称,值得指出的是有些驱动程序是微软公司的产品在安装操作系统时就安装了,而有些数据库产品的驱动程序由开发数据库产品的软件公司随数据库产品一起提供,需在安装数据库时选择安装上,才可以使用。
否则在此找不到驱动程序。
例如:
Sybase数据库驱动程序。
3.SERVER(SRVR):
字符串表达式,一些数据介绍为服务器名称,经笔者实践认为确切地应为数据库服务名称,由于象SQLServer、Sybase等数据库在安装时自动把服务器名称缺省设置为数据库服务名称,但如果只在“我的计算机”→“属性”→“网路标识”→“属性”中更改计算机名,而不改变数据库服务名称,使之不相同,在程序中应以数据库服务名称为准。
4.DATABASE(DB):
字符串表达式,指定要与其建立连接的数据库名称。
需要特别指出的是即使DSN定义已经指定了数据库,也可以在DSN之外指定DATABASE参数以便连接到不同的数据库。
这同时更改了DSN定义以包括指定的数据库。
使用DSN时始终包括DATABASE参数是一种好办法。
这样将保证能连接到正确的数据库,因为其它用户可能会在上一次检查DSN定义后更改默认的数据库参数。
5.DSN(DataSource):
字符串表达式,在此为空,无须指定连接的ODBC数据源的名称
6.UID(UserID):
字符串表达式,为ODBC数据源指定用户标识(用户账号名),指定用户必须有足够的权限。
7.PWD(Password):
字符串表达式,为ODBC数据源指定用户口令,必须有足够的权限。
四.非DSN连接字符串的组成:
除了ADO所定义的参数外,提供者不支持任何特定连接参数。
但是,提供者将把任何非ADO连接参数传递给ODBC驱动程序管理器。
由于可以省略Provider参数,因此使用与撰写ODBC连接字符串时用的相同参数名(DRIVER=、DATABASE=、DSN=等等)、值和语法,可以撰写与同一数据源的ODBC连接字符串相同的ADO连接字符串。
1.对于SQLServer数据库:
[Provider=MSDASQL;
DRIVER={DriverName};
SERVER=server;
DATABASE=database;
UID=user;
PWD=password"
cnna.ConnectionString="
Provider=MSDASQL;
"
_
+"
driver={SQLServer};
server=servera;
database=pubs;
uid=sa;
pwd=yyuui"
2.对于Sybase数据库:
[PROVIDER=MSDASQL;
SRVR=server;
注:
必须是SRVR,而不能是SERVER。
DB=database;
可以是DB,也可以DATABASE。
DSN=;
该项可以省略。
PWD=passwod
cnnb.ConnectionString="
DRIVER={SybaseSystem11};
SRVR=serveru;
DB=dataa;
UID=sa;
PWD=dqwe"
3.对于Oracle数据库:
databasename=database;
databasefile=path;
PWD=password;
cnnc.ConnectionString="
DRIVER={MicrosoftODBCforOracle};
SERVER=Webserver;
databasename=dataall;
databasefile=d:
\data\;
UID=dba;
PWD=zxcv"
4.对于Informix数据库:
Driver={DriverName};
Host=IPAdress;
Database=database;
FetchBufferSize=integer;
NoLoginBox=Yes;
Options=;
Protocol=TCP/IP;
ReadOnly=No;
ServerOptions=;
ServerType=InformixVersion
cnnd.ConnectionString="
_
Driver={OpenLinkGeneric32BitDriver};
Host=11.66.17.151;
Database=pubs;
PWD=asdf;
FetchBufferSize=30;
ServerType=Informix7.2"
注:
[]中的内容可以省略。
五.实例一瞥:
服务器安装windows2000Server操作系统,以Sybase11.9.2数据库作为服务器端数据库管理数据;
客户端安装Windows98,Sybase客户端程序OpenClient,以VisualFoxPro6.0数据库作为客户端开发工具。
扬长避短,相得益彰,充分发挥Sybase数据库安全性、可靠性高,管理数据量大;
VisualFoxPrp6.0数据库开发人员熟悉,开发速度快,程序体积小,运行速度快,占用资源少的特点。
以Sybase11.9.2为例,编制一个实用的学籍管理程序,以期达到抛砖引玉的效果;
数据库名称为Studentdb,只包括一个表(Student),其结构如下:
字段名称宽度注释
codenchar(22)代号
namechar(姓名
birthdaynchar(生日
gradeint年级
classint班
tuitionnumeric(7,2)学费
mathsnumeric(5,2)数学
chinesenumeric(5,2)语文
physicsnumeric(5,2)物理
chemistr