📄 dws2adomodule.pas
字号:
procedure Tdws2ADOLib.customADOUnitClassesTDBFieldMethodsGetFloatEval(
Info: TProgramInfo; ExtObject: TObject);
begin
Info.Result := TField(ExtObject).AsFloat;
end;
procedure Tdws2ADOLib.customADOUnitClassesTDBFieldMethodsGetDateTimeEval(
Info: TProgramInfo; ExtObject: TObject);
begin
Info.Result := TField(ExtObject).AsDateTime;
end;
procedure Tdws2ADOLib.customADOUnitClassesTDatasetMethodsLastEval(
Info: TProgramInfo; ExtObject: TObject);
begin
with TdwsADODatasetObj(ExtObject).AdoDataset do
begin
Last;
Info.Result := not eof;
end;
end;
procedure Tdws2ADOLib.customADOUnitClassesTDatasetMethodsGetSQLEval(
Info: TProgramInfo; ExtObject: TObject);
begin
Info.Result := TdwsADODatasetObj(ExtObject).ADODataset.CommandText;
end;
procedure Tdws2ADOLib.customADOUnitClassesTDatasetMethodsSetSQLEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatasetObj(ExtObject).ADODataset.CommandText := Info['sSQL'];
end;
procedure Tdws2ADOLib.customADOUnitClassesTDatasetMethodsFieldByNameEval(
Info: TProgramInfo; ExtObject: TObject);
begin
//genera memoryleek
Info.Result :=
Info.Vars['TDBField'].GetConstructor('Create',
TdwsADODatasetObj(ExtObject).ADODataset.FieldByName(Info['FieldName'])
).Call.Value;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetConstructorsCreateAssignExternalObject(
Info: TProgramInfo; var ExtObject: TObject);
var
dsh: TdwsAdoDatasetObj;
begin
dsh := TdwsAdoDatasetObj.Create;
dsh.AdoDataset := TADODataset.Create(self);
dsh.AdoDataset.CursorType := ctOpenForwardOnly;
dsh.AdoDataset.CursorLocation := clUseClient;
ExtObject := dsh;
end;
procedure Tdws2ADOLib.customADOUnitClassesTDatasetMethodsFreeEval(
Info: TProgramInfo; ExtObject: TObject);
var
DatasetObj: TdwsAdoDatasetObj;
begin
DatasetObj := TdwsADODatasetObj(ExtObject);
DatasetObj.ADODataset.Close;
DatasetObj.ADODataset.Free;
end;
procedure Tdws2ADOLib.customADOUnitClassesTDBFieldMethodsIsNullEval(
Info: TProgramInfo; ExtObject: TObject);
begin
Info.Result := TField(ExtObject).IsNull;
end;
procedure Tdws2ADOLib.customADOUnitClassesTDatabaseMethodsExecuteEval(
Info: TProgramInfo; ExtObject: TObject);
var
DBObj: TdwsAdoDatabaseObj;
begin
DBObj := TdwsADODatabaseObj(ExtObject);
with DBObj.ADOConnection do
begin
Execute(Info['sSQL'], DBObj.RecordsAffected);
end;
end;
procedure Tdws2ADOLib.customADOUnitClassesTDatabaseMethodsFreeEval(
Info: TProgramInfo; ExtObject: TObject);
var
dbh: TdwsADODataBaseObj;
begin
dbh := TdwsADODataBaseObj(ExtObject);
dbh.ADOConnection.Close;
dbh.ADOConnection.Free;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsExecuteEval(
Info: TProgramInfo; ExtObject: TObject);
var
scriptObj: IScriptObj;
strSQL: string;
datasetObj: TdwsAdoDatasetObj;
dbObj: TdwsADODatabaseObj;
begin
strSQL := Info['sSQL'];
// il TADOConnection lo ricavo da ExtObject (l'oggetto chiamante)
dbObj := TdwsADODatabaseObj(ExtObject);
// creo l'oggetto TADODataset e memorizzo il suo indice
scriptObj := IScriptObj(IUnknown(Info.Vars['TADODataset'].GetConstructor('Create', dbObj).Call.Value));
// tramite iObj, ricavo il puntatore per DatasetObj e lo assegno
datasetObj := TdwsAdoDatasetObj(scriptObj.ExternalObject);
// creo l'oggetto ADODataset
datasetObj.AdoDataset := TAdodataset.Create(dbObj.ADOConnection);
datasetObj.AdoDataset.Recordset := dbObj.ADOConnection.Execute(strsql);
Info.Result := scriptObj;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsGetRecordsetEval(
Info: TProgramInfo; ExtObject: TObject);
var
scriptObj: IScriptObj;
strSQL: string;
datasetObj: TdwsAdoDatasetObj;
dbObj: TdwsADODatabaseObj;
begin
strSQL := Info['sSQL'];
// il TADOConnection lo ricavo da ExtObject (l'oggetto chiamante)
dbObj := TdwsADODatabaseObj(ExtObject);
// creo l'oggetto TADODataset e memorizzo il suo indice
scriptObj := IScriptObj(IUnknown(Info.Vars['TADODataset'].GetConstructor('Create', dbObj).Call.Value));
// tramite iObj, ricavo il puntatore per DatasetObj e lo assegno
datasetObj := TdwsAdoDatasetObj(scriptObj.ExternalObject);
// creo l'oggetto ADODataset
datasetObj.AdoDataset := TAdodataset.Create(dbObj.ADOConnection);
with DatasetObj.AdoDataset do
begin
CursorType := ctOpenForwardOnly;
CursorLocation := clUseClient;
Connection := DBObj.ADOConnection;
CommandText := strsql;
Open;
end;
Info.Result := scriptObj;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsVersionEval(
Info: TProgramInfo; ExtObject: TObject);
begin
Info.Result := TdwsADODataBaseObj(ExtObject).ADOConnection.Version;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsStateEval(
Info: TProgramInfo; ExtObject: TObject);
begin
with TdwsADODataBaseObj(ExtObject).ADOConnection do
begin
if State = [stClosed] then
Info.Result := 0
else if State = [stOpen] then
Info.Result := 1
else if State = [stConnecting] then
Info.Result := 2
else if State = [stExecuting] then
Info.Result := 3
else if State = [stFetching] then
Info.Result := 4;
end;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsGetProviderEval(
Info: TProgramInfo; ExtObject: TObject);
begin
Info.Result := TdwsADODatabaseObj(ExtObject).Adoconnection.ConnectionString;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsSetProviderEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatabaseObj(ExtObject).Adoconnection.ConnectionString := Info['Value'];
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsDatasetCountEval(
Info: TProgramInfo; ExtObject: TObject);
begin
Info.Result := TdwsADODatabaseObj(ExtObject).Adoconnection.DataSetCount;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsSetConnectionEval(
Info: TProgramInfo; ExtObject: TObject);
var
dbObj: TdwsADODatabaseObj;
scriptObj: IScriptObj;
begin
scriptObj := IScriptObj(IUnknown(Info['Value']));
if scriptObj = nil then
dbObj := nil
else
dbObj := TdwsADODatabaseObj(scriptObj.ExternalObject);
TdwsADODatasetObj(ExtObject).AdoDataset.Connection := dbObj.Adoconnection;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsRollbackTransEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatabaseObj(ExtObject).Adoconnection.RollbackTrans;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsBeginTransEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatabaseObj(ExtObject).Adoconnection.BeginTrans;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADOConnectionMethodsCommitTransEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatabaseObj(ExtObject).Adoconnection.CommitTrans;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsRecordCountEval(
Info: TProgramInfo; ExtObject: TObject);
begin
Info.Result := TdwsADODatasetObj(ExtObject).AdoDataset.RecordCount;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsFirstEval(
Info: TProgramInfo; ExtObject: TObject);
begin
with TdwsADODatasetObj(ExtObject).AdoDataset do
begin
First;
Info.Result := eof;
end;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsNextEval(
Info: TProgramInfo; ExtObject: TObject);
begin
with TdwsADODatasetObj(ExtObject).ADODataset do
begin
next;
Info.Result := not eof;
end;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsCloseEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatasetObj(ExtObject).AdoDataset.close;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsEditEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatasetObj(ExtObject).AdoDataset.edit;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsInsertEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatasetObj(ExtObject).AdoDataset.Insert;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsPostEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatasetObj(ExtObject).AdoDataset.Post;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsCancelEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatasetObj(ExtObject).AdoDataset.cancel;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsDeleteEval(
Info: TProgramInfo; ExtObject: TObject);
begin
TdwsADODatasetObj(ExtObject).AdoDataset.Delete;
end;
procedure Tdws2ADOLib.customADOUnitClassesTADODatasetMethodsOpenEval(
Info: TProgramInfo; ExtObject: TObject);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -