SelectDB函数

用作从打开数据库内的表格中检索数据的函数。

格式
SelectDB (#数据库编号, 表格名, Select条件, Sort方法)

参数

数据库编号
指定利用OpenDB指定的数据库编号(501~508的整数值)。
表格名
指定要进行数据检索的表格名。由文件编号指定的数据库类型为Excel工作簿时,指定Excel表单或加名的表格。指定Excel表单时,在表单名之后附加 $ 并用 [] 括起。指定由Excel表单内的名称指定的区域时,用[]括起名称。
Select条件
指定检索条件。可使用AND、OR指定复合条件。未指定检索条件时,检索表格中的所有数据。
Sort方法
指定提取已检索数据的顺序。指定Sort键和Sort顺序(升序 [ASC] /降序 [DESC] )。省略Sort顺序时,说明已指定Sort键的升序。省略Sort方法时,根据已打开的数据库确定顺序。

返回值
返回检索列的总数。

说明
根据Sort条件,从已打开数据库的指定表格中对符合Select条件的数据进行分类(Sort)。

务必在利用Input#、Print#读入、写入数据之前执行。

打开的数据库为Excel工作簿时,表单以及按名称定义的区域的第1行会作为搜索时使用的列名读入,不作为数据使用。

如果1个表单中存在多个表,则无法正常读取表单内的表。请为各个表的区域命名,并指定为按名称定义的区域。

注意


  • 需要连接已安装RC+的PC。

参阅
OpenDB, CloseDB, UpdateDB, DeleteDB, Input #, Print #

SelectDB函数使用示例
SQL数据库的使用示例

如下所示为利用SQL服务器2000样本数据库Northwind的表格Employees或TitleOfCourtesy,按EmployeeID的降序读入Ms.数据的简单示例。

  Integer count, i, eid
  String Lastname$, Firstname$, Title$

  OpenDB #501, SQL, "(LOCAL)", "Northwind"
  count = SelectDB(#501, "Employees", "TitleOfCourtesy = 'Ms.'", "EmployeeID DESC")
  For i = 0 To count - 1
    Input #501, eid, Lastname$, Firstname$, Title$
    Print eid, ",", Lastname$, ",", Firstname$, ",", Title$
  Next
  CloseDB #501

Access数据库的使用示例

如下所示为从Microsoft Access 2007样本数据库学生名册的学生表格中,按ID的升序读入职务为组长的数据的简单示例。

  Integer count, i, eid
  String Lastname$, Firstname$, dummy$

  OpenDB #502, Access, "c:\MyDataBase\学生名册.accdb"
  count = SelectDB(#502, "学生", "职务 = '组长'", "ID")
  For i = 0 To count - 1
    Input #502, eid, dummy$, dummy$, Lastname$, dummy$, Firstname$
    Print eid, ",", Lastname$, ",", Firstname$
  Next
  CloseDB #502

Excel工作簿的使用示例

下面给出一个简单示例,从RC+8.0附带的示例项目“DrawEpsonLogo”中的Excel工作簿EPSON_LOGO.xls的LOGO表单中,按Point升序读取X坐标大于220的数据。
示例中使用的Excel工作簿,请参见以下内容。
示例文件

Integer count, i, p, x, y
String desc$

OpenDB #501, Excel, "C:\EpsonRC80\projects\Samples\Database\DrawEpsonLogo\EPSON_LOGO.xls"
count = SelectDB(#501, "[LOGO$]", "X > 220", "Point ASC")
For i = 0 To count - 1
    Input #501, p, x, y, desc$
    Print "Point", p, ", X:", x, ", Y:", y, ", Descripption:", desc$
Next

'输出结果
'Point 1, X: 224, Y: 51, Descripption:N1
'Point 2, X: 224, Y: 0, Descripption:N2
'Point 11, X: 224, Y: 51, Descripption:N11