Kbase 19980: OPEN CLIENT: Sample Delphi Procedure for Input Temp-Table
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  9/9/2008 |
|
Status: Verified
GOAL:
How to: Communicate with the AppServer from Delphi
FACT(s) (Environment):
Delphi 5
Progress 9.x
ActiveX Data Objects (ADO)
Progress 9.x
FIX:
procedure TForm1.Button1Click(Sender: TObject);
var
AppServer : Variant;
TempTable : Variant;
RecordSet : Variant;
const
adChar = 129;
adOpenDynamic = 2;
begin
// Connect to the AppServer
AppServer := CreateOleObject('com.progress.kbase.KBaseObject');
AppServer.OC_Connect('AppServer://myhost:5162/kbase', '', '', '');
// Create an ADO Recordset (Disconnected Recordset)
RecordSet := CreateOleObject('ADOR.Recordset');
// Define Structure of Recordset
RecordSet.Fields.Append('SalesRep', adChar, 4, );
RecordSet.Fields.Append('RepName', adChar, 30, );
RecordSet.Fields.Append('Region', adChar, 8, );
// Open Recordset
RecordSet.Open(, , adOpenDynamic);
// Add Two (2) Records to Recordset
RecordSet.AddNew('SalesRep', 'XX01');
RecordSet.Update('RepName', 'Rep XX01');
RecordSet.Update('Region', 'Saturn');
RecordSet.AddNew('SalesRep', 'XX02');
RecordSet.Update('RepName', 'Rep XX02');
RecordSet.Update('Region', 'Mars');
// Force Entire Recordset To Be Sent To AppServer
RecordSet.MoveFirst;
RecordSet.MovePrevious;
// The name of the ActiveX Automation class for Temp-Table
// support in V9.1A is 'Progress.TempTable.2'. Prior to this
// the class name was 'Progress.TempTable'.
// Create a TempTable Holder Object
TempTable := CreateOleObject('Progress.TempTable.2');
// Tell The TempTable Holder Object To Get Data From The ADO
// Recordset
TempTable.DataSource := RecordSet;
// Invoke The 4GL Program Named 'UpdateData' And Pass The
// TempTable To It
AppServer.UpdateData(TempTable);
// Release The AppServer Connection
AppServer.OC_Release;
end;