This is also true.....I think from memory that you cant use names, you need
to use the field array number.....forgot to add that to my last
email...sorry
Jeremy Coulter
Application Developer
Application Development Centre
Compaq Computer New Zealand Ltd.
Phone: 64 3 371 5724 (DD)
Fax: 64 3 371 5744
Cell: 021 2150435
E-mail: [EMAIL PROTECTED]
Private E-Mail: [EMAIL PROTECTED]
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]
Sent: Thursday, June 03, 1999 11:22
To: Multiple recipients of list delphi
Subject: Re: [DUG]: ADO Hierarchial Record Sets
Isn't fields an array (ie 0..10) or somethinh like that, if you want to use
the field name use use ttable.fieldbyname('fieldame')
richard
"Chris Crowe" <[EMAIL PROTECTED]> on 03/06/99 08:32:17 am
Please respond to [EMAIL PROTECTED]
To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
cc: (bcc: Richard R Huegill/NSO/CSDA)
Subject: [DUG]: ADO Hierarchial Record Sets
Below is a simple ADO application which uses Hirarchial Record sets. I can
not get it to work. In VB you use a syntax like the following to get access
to the child record set.
Set rsTitle = rsPub!rsOldOrders.Value
So in Delphi I tried
rsoldOrders := rsPub.Fields['rsOldOrders'].Value;
But it will not compile with the error "Incompatible types OLEVariant and
_Recordset"
Does anyone have any ideas here?
Chris
Christopher Crowe (Software Developer)
Microsoft MVP, MCP
Adrock Software
Byte Computer & Software LTD
P.O Box 13-155
Christchurch
New Zealand
Phone/Fax (NZ) 03-3651-112
==================================
unit AdoSample;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
adodb_tlb,
StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Panel1: TPanel;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
ADOSql : String;
cn : Connection;
rsOldOrders,
rsPub : Recordset;
rsTitle : Recordset;
rsRecent : Recordset;
SQL : String;
begin
Cn := CoConnection.Create;
cn.Provider := 'MSDataShape';
cn.Open ('dsn=OLE_access_NWIND','','',0);
rsPub := CoRecordset.Create;
rsOldOrders := CoRecordset.Create;
ADOSql := 'SHAPE {SELECT * FROM customers} '+
'APPEND ({SELECT * From orders Where orderdate < #1/1/1996# And
customerid = ?} '+
'RELATE customerid TO PARAMETER 0) AS rsOldOrders, '+
'({SELECT * From orders WHERE orderdate >= #1/1/1996#} '+
'RELATE customerid TO customerid) AS rsRecentOrders ';
rsPub.Open(ADOSql, cn, adOpenStatic, adLockReadOnly, adCmdText);
ListBox1.items.Clear;
While (rsPub.EOF= FALSE) do
begin
ListBox1.items.Add('Customer = '+rsPub.Fields['CompanyName'].Value);
rsoldOrders := rsPub.Fields['rsOldOrders'].Value;
While (rsoldOrders.EOF= FALSE) do
begin
ListBox1.items.Add('
'+rsOldOrders.Fields['OrderDate'].Value);
rsOldOrders.Movenext
end;
rsOldOrders.Close;
rsPub.moveNext;
end;
rsPub.Close;
end;
end.
---------------------------------------------------------------------------
New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz
---------------------------------------------------------------------------
New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz
Jeremy Coulter.vcf