如何将ADO执行的结果集赋于一个变量?(0分)

  • 主题发起人 主题发起人 billson
  • 开始时间 开始时间
B

billson

Unregistered / Unconfirmed
GUEST, unregistred user!
如:
var sql:string;
sql="select * from aa";
if not datamodule1.adocn1.execute(sql) then
//将该执行结果赋于一变量,如何做?在VB中是用set关键字.
 
在Delphi中是用AdoQuery
 
请讲讲具体实现方法,小弟刚学,不太懂,还请包涵!!
(我是将所有的ADO连接组件放在Data Module中)
另外请问,有关数据库有关的术语:
dataset与datasource之间的联系与区别
 
在你的form中添加一个ADOQuery,然后
with adoquery do begin
close;
sql.clear;
sql.add('select * from table1');
open;
end;
也可以将一个String的变量赋给sql.add(String var)

然后对这个adoquery进行操作即可,就普通的一个table一样
 
问一下。adoquery能不能修改记录,怎么保存?好像和table不一样。
 
如果把结果集复制给控件呢?比如ComboBox,可以吗?
 
SELECT取得结果集为Recordset,
不能给COMBOBOX。。。除非你自己将结果集转为STRINGS
 
PS。。给你个代码看看就知道了。
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComObj, Grids, DBGrids, Db, ADODB,Adoint;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Ado1: TADODataSet;
procedure FormCreate(Sender: TObject);
private
adc:Connection; { Private declarations }
adr: Recordset;
function GetRs:IDispatch;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
localrs:RecordSet;
begin
localrs:=Self.GetRs As RecordSet;
Ado1.Recordset:=localRs;
end;

function TForm1.GetRs: IDispatch;
var
str_con: string;
ssql: string;
begin
ssql := 'select * from T_Person_Resume';
str_con := 'Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=wygl;Data Source=fors';
adc:=coConnection.Create;
Adc.Open(str_con, 'sa', '',adConnectUnspecified);
Adr:=CreateComObject(CLASS_Recordset) as Recordset;
Adr.CursorLocation := adUseClient;
Adr.Open(ssql, Adc, AdOpenForwardOnly, AdLockReadOnly, adCmdText);
Result:=Adr;
end;
 
后退
顶部