三、相关函数
1、SQLOpen
SQLOpen( connectStr$ [ , outputStr$] [ , prompt%] ) |
建立一个到在connectStr里指定的ODBC数据源的连接并返回一个连接ID,并将完全的连接字符串赋予outputStr变量。如果连接不可用,返回ODBC错误的负数。
1. connectStr$指定参数,必须参数。
2. outputStr$可选
3. prompt%可选。Prompt指定何时驱动对话框出现。可选项:
3.1对话框永远出现
3.2说明不够充分以建立连接时打开驱动对话框
3.3同2,对话框内容为灰色,不能修改
3.4对话框不出现,连接不成功,则返回一个错误
注解:
关于connectStr的内容:典型字符串形式为"DSN=datasourcename; UID=myid; PWD=mypassword"。返回长型long型。
当prompt缺省时,SQLOpen使用2作为默认值。
2、SQLClose
SQLClose( connection& ) |
断开由SQLOpen确定的与ODBC数据源连接。
connection & 由SQLOpen返回的一个长整型的名称参数。
注解:
返回的是一个变量。成功返回0并连接随后关闭或断开。如果连接不正常,返回-1。
3、SQLError
SQLError( destination() ) |
可以用来接收做ODBC函数调用时发生的多条错误的详细信息。为最近ODBC函数调用和连接返回错误信息。destination()两维数组的每行包含一个错误。名称参数是必要的,必须是变量的数组。
注意:
没有返回值。
域:
1) 表示ODBC错误类型/下级分类的字符串
2)表示数据源错误编码的数字值
3)表示错误的文本信息。如果没有错误从先前的ODBC函数调用发生,则0被返回到调用者数组的(1,1)里。如果数组不是2维的或不支持上面提到的三个域,则一个错误信息被返回到调用者数组的(1,1)里。
4、SQLExecQuery
SQLExecQuery( connection& , query$ ) |
在SQLOpen确定的连接上执行一个SQL语句。
1. connection&指定参数、必须。长整形、由SQLOpen返回。
2. query$包含一个有效SQL语句的字符串,返回值是个变量。
注意:
对于SQL SELECT返回结果集的栏数目;对于UPDATE, INSERT, 或DELETE返回受语句作用的行的数目。任何其它SQL语句返回0。如果函数在指定数据源不能执行此查询,或如果连接不可用,则返回为负的错误编码。如果SQLExecQuery被调用但连接上还有一些未处理结果,则这些等待结果被新的结果所代替。
5、SQLGetSchema
返回各类信息,包括数据源的可用信息,当前用户ID,表格名称,表格列的名称&类型,以及其他数据源/数据库的信息
SQLGetSchema(connection& , action% , qualifier$ , ref() ) |
函数说明:
connection&由SQLOpen返回一个长整形
action% 必需项
qualifier$ 必需项
ref()动作请求的对应的结果的变量数组,必须有一个数组即使仅一个参数的一维数组,返回值是一个变量
动作具体注释说明:
1 现有可用数据源列表(dimension of ref() is one)
2 当前连接上的数据库列表(不支持)
3 当前连接上数据库的所有者列表(不支持)
4 指定连接上的表格列表
5 由合法用户指定表格的栏列的列表(ref() 必须2维)。返回列栏名称和SQL数据类型。
6 当前连接使用者的用户ID
7 当前数据库的名称
8 当前连接的数据源的名称。
9 数据源使用的DBMS的名称(例如Oracle)。
10 数据源的服务器名称
11 数据源表示拥有者的术语
12 数据源表示表格的术语
13 数据源表示合法用户的术语
14 数据源表示过程的术语
注解:
返回一个负数表示一个错误。如果请求信息不能被访问或连接不能用,将返回-1。目标数组必须适当地定制以支持动作或错误返回。动作2和3不是普遍被支持的。动作4返回所有表格并不支持权限使用。不是所有数据库产品和ODBC驱动支持所有动作。
6、SQLRequest
建立一个由connectionStr指定数据源的连接,执行包含在query内的SQL语句,返回请求的结果到ref()数组里,并关闭连接
SQLRequest( connectionStr$ , query$ , outputStr$ , prompt% , columnNames% , ref() ) |
函数说明:
1. connectionStr$必需项。
2. query$ 必需项
3. outputStr$ 包含完整连接字符串
4. prompt% Prompt指定何时驱动对话框出现。一个整数。(查看SQLOpen).
5. columnNames% 0或非0的一个整数。当columnNames为非0,栏列名称作为ref()数组的第一行被返回。如果columnNames缺省,默认值为0。
6. ref() 必需项,2维变量数组。
注解:
在连接不能被建立、查询不能用、或其它错误的情况下,返回一个负数。在请求成功情况下返回正数或受影响的行数。其它SQL语句返回0。
参数是必需的参数。结果为变量。
7、SQLRetrieve
(函数用途说明)在由connection指定的连接上获取待定查询结果并将结果返回到destination()数组里。
SQLRetrieve( connection& , destination() , maxColumns% , maxRows% , columnNames% , rowNumbers% , fetchFirst% ) |
1. connection& 长型long
2. destination()2维变量数组
3. maxColumns% 整形,可选参数,用来指定在查询中取回的栏列数目
4. maxRows%整形,可选参数,用来指定在查询中取回的行的数目
5. columnNames%整形,可选参数,默认为0
6. rowNumbers%整形,可选参数,默认为0
7. fetchFirst% 整形,可选参数,默认为0
注解:
返回值是结果集的行的数目或请求的最大行。如果函数不能在指定连接上获得结果,返回-1。如果没有发现数据,函数返回0。
参数是必需参数。返回变量。
如果maxColumns或maxRows被缺省,数组大小被用来确定获得的行列的最大数目,并返回整个结果集是一个尝试。通过再次使用SQLRetrieve和把fetchFirst设置为0,额外行可以被获得。如果maxColumns指定比结果中可用的更少的列,SQLRetrieve抛弃右边结果列只到结果与指定大小相适合
当columnNames是非0,数组的第1行将放置数据库计划(database schema)指定的列名称。当rowNumbers是非0,行数目返回到destination()的第1列。SQLRetrieve将清空用户的数组来获得结果。
当fetchFirst是非0,它将结果重新配置到第一行,前提是如果数据库支持此功能。如果数据库不支持此功能,结果设置-1错误被返回。
如果结果集有比可以被destination()数组包含还多的行或比用maxRows请求还多的行,用户可以重复调用SQLRetrieve只到返回值为0为止。
8、SQLRetrieveToFile
在connection指定的连接上获取待定查询结果并存储到destination指定的文件。
SQLRetrieveToFile( connection& , destination$ , columnNames% , columnDelimiter$ ) |
1. connection& 必需项,long
2. destination$ 必需项,包含用来存储结果的文件和路径的字符串
3. columnNames% 整型,非0时,文件首行将存储数据库计划指定的栏列名称。如果缺省,默认为0
4. columnDelimiter$ 每行内界定域用的字符串。如果缺省,tab键用来分隔域。
注解:
成功完成操作情况下,返回值是结果集的行数目。如果函数不能在指定连接上获得结果,返回-1。
参数是必需参数。返回变量。