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
← Select...Send Sense →