恩,建议用ado,用adoquery吧。 有个例子 procedure TcbSelect.AddItemString(cb:TCombobox;adoq:TADOQuery;str1:string;str2:string); var str:string; i,t:integer; begin i:=0; cb.Items.Clear; str:='select distinct '+字段名+' from '+表名; with adoq do begin close; sql.clear; sql.add(str); open; end; t:=adoq.RecordCount; if t>0 then begin adoq.first; while i<=t-1 do begin cb.items.add(adoq.FieldByName(str1).value); i:=i+1; adoq.next; end; end; end; 这个应该可以实现你的要求,我一直在用。
1、保持数据库的连接
2、用户要求数据库服务及登陆
3、事务处理控制
4、应用程序明确的bde别名
当连接到远程sql数据库服务器上时,该组件对于控制通过bde执行数据库事务处理尤其重要强烈建议用ado连接数据库!
所以,开发数据库,你不得不用ADO,
但是现在Borland又出了DBExpress,被称为是下一代的数据库支持系统,性能比ADO还强,只是现在支持的数据库好像还不多。
database的最主要功能是在进行数据移植时,才体现出来的.举个例子把:
如果你原来用的数据库是SQLSERVER的dababase的别名为A,现在你想转化为oracle的,你只要
database中的名称设置为oracle的ODBC名称就可以实现移植操作了。
2。
你要在功用函数中设置一个database的别名变量A,然后在登陆窗体中加入一个query组件,
在登陆窗体中设置query的datasource属性为A,然后进行查询操作就可以了
有个例子
procedure TcbSelect.AddItemString(cb:TCombobox;adoq:TADOQuery;str1:string;str2:string);
var
str:string;
i,t:integer;
begin
i:=0;
cb.Items.Clear;
str:='select distinct '+字段名+' from '+表名;
with adoq do
begin
close;
sql.clear;
sql.add(str);
open;
end;
t:=adoq.RecordCount;
if t>0 then
begin
adoq.first;
while i<=t-1 do
begin
cb.items.add(adoq.FieldByName(str1).value);
i:=i+1;
adoq.next;
end;
end;
end;
这个应该可以实现你的要求,我一直在用。