⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dws2adomodule.pas

📁 script language
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -