脚印

一脚一印 一点一滴 【欢迎光临·转载请注明出处】
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

三、相关函数

 1、SQLOpen

SQLOpen( connectStr$ [ , outputStr$] [ , prompt%] )

建立一个到在connectStr里指定的ODBC数据源的连接并返回一个连接ID,并将完全的连接字符串赋予outputStr变量。如果连接不可用,返回ODBC错误的负数。

  1.  connectStr$指定参数,必须参数。

  2.  outputStr$可选

  3.  prompt%可选。Prompt指定何时驱动对话框出现。可选项:

3.1对话框永远出现

3.2说明不够充分以建立连接时打开驱动对话框

3.32,对话框内容为灰色,不能修改

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。目标数组必须适当地定制以支持动作或错误返回。动作23不是普遍被支持的。动作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

参数是必需参数。返回变量。

如果maxColumnsmaxRows被缺省,数组大小被用来确定获得的行列的最大数目,并返回整个结果集是一个尝试。通过再次使用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

参数是必需参数。返回变量。