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

📄 dws2ibomodule.pas

📁 script language
💻 PAS
📖 第 1 页 / 共 3 页
字号:
procedure Tdws2IboLib.SetScript(const Value: TDelphiWebScriptII);
var
  x: Integer;
begin
  if Assigned(FScript) then
    FScript.RemoveFreeNotification(Self);
  if Assigned(Value) then
    Value.FreeNotification(Self);
  FScript := Value;
  for x := 0 to ComponentCount - 1 do
    if Components[x] is Tdws2Unit then
      Tdws2Unit(Components[x]).Script := Value;
end;

procedure Tdws2IboLib.SetIBOConnection(const Value: TIB_Connection);
begin
//  if Assigned(FIBOConnection) then
//    FScript.RemoveFreeNotification(Self);
  if Assigned(Value) then
    Value.FreeNotification(Self);
  FIBOConnection := Value;
end;

procedure Tdws2IboLib.SetIBOTransaction(const Value: TIB_Transaction);
begin
//  if Assigned(FIBOTransaction) then
//    FScript.RemoveFreeNotification(Self);
  if Assigned(Value) then
    Value.FreeNotification(Self);
  FIBOTransaction := Value;
end;

procedure Tdws2IboLib.LUFieldSetValue(FieldValue: variant; ExtObject: TObject);
var
  sFieldValue : string;
begin
  with TdwsIBOStatementObj(ExtObject)do
  begin
    if IBOStatement.FieldByName(KeyFieldName).AsString = KeyFieldValue then
    begin
      LUCol.AsVariant := FieldValue;
    end
    else begin
      sFieldValue := FieldValue;
      AddLUFieldRow(sFieldValue);
    end;
  end;
end;

// ****************************************************************************
// ********************* IBO Class Methods  ***********************************
// ****************************************************************************

procedure Tdws2IboLib.AFreeExtObject(
  Info: TProgramInfo; ExtObject: TObject);
begin
  ExtObject.Free;
  ExtObject := nil;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementConstructorsCreateAssignExternalObject(
  Info: TProgramInfo; var ExtObject: TObject);
begin
  ExtObject := TdwsIBOStatementObj.Create;
  TdwsIBOStatementObj(ExtObject).IBOStatement := TIB_Statement.Create(self);
  TdwsIBOStatementObj(ExtObject).IBOStatement.IB_Connection := FIBOConnection;
  TdwsIBOStatementObj(ExtObject).IBOStatement.IB_Transaction := FIBOTransaction;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementConstructorsCreateFromDBAssignExternalObject(
  Info: TProgramInfo; var ExtObject: TObject);
var
  ScriptObj: IScriptObj;
  DBObj: TdwsIboDataBaseObj;
begin
  ScriptObj := IScriptObj(IUnknown(Info['Database']));
  if ScriptObj = nil then
    DBObj := nil
  else
    DBObj := TdwsIboDataBaseObj(ScriptObj.ExternalObject);

  ExtObject := TdwsIBOStatementObj.Create;
  TdwsIBOStatementObj(ExtObject).IBOStatement := TIB_Statement.Create(self);
  TdwsIBOStatementObj(ExtObject).IBOStatement.IB_Connection := DBObj.IBOConnection;
  TdwsIBOStatementObj(ExtObject).IBOStatement.IB_Transaction := FIBOTransaction;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementMethodsGetSQLEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TdwsIBOStatementObj(ExtObject).IBOStatement.SQL.Text;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementMethodsSetSQLEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  TdwsIBOStatementObj(ExtObject).IBOStatement.SQL.Text := Info['sSQL'];
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementMethodsExecuteEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  TdwsIBOStatementObj(ExtObject).IBOStatement.Execute;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementMethodsFieldByNameEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] :=
      Info.Vars['TDBField'].GetConstructor('Create',
      TdwsIBOStatementObj(ExtObject).IBOStatement.FieldByName(Info['FieldName'])
      ).Call.Value;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementMethodsFieldEval(
  Info: TProgramInfo; ExtObject: TObject);
var
  MyStatement: TIB_Statement;
  IboCol: TIB_Column;
  sFieldName : string;
begin
  MyStatement := TdwsIBOStatementObj(ExtObject).IBOStatement;
  sFieldName := Info['FieldName'];
  IboCol := MyStatement.FindField(sFieldName);
  with MyStatement do
  if IboCol = nil then
    Info['Result'] := '!!dbfield('+sFieldName+')??'
  else begin
    if (MyStatement is TIB_Dataset) and (IboCol.IsNull or TIB_Dataset(MyStatement).eof
        or TIB_Dataset(MyStatement).bof) then
    begin
      if IboCol.IsNumeric then
      begin
         Info['Result'] := 0.0
      end
      else
        Info['Result'] := '';
    end
    else
      Info['Result'] := IboCol.AsVariant;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementMethodsFieldIsNullEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with (TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    Info['Result'] :=  FieldByName(Info['FieldName']).isnull;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementMethodsParamByNameEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] :=
      Info.Vars['TDBField'].GetConstructor('Create',
      TdwsIBOStatementObj(ExtObject).IBOStatement.parambyname(Info['ParamName'])
      ).Call.Value;
end;

procedure Tdws2IboLib.customIBOUnitClassesTStatementMethodsSetParamEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  TdwsIBOStatementObj(ExtObject).IBOStatement.parambyname(Info['ParamName']).AsVariant
    := Info['Value'];
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetConstructorsCreateAssignExternalObject(
  Info: TProgramInfo; var ExtObject: TObject);
begin
  ExtObject := TdwsIBOStatementObj.Create;
  TdwsIBOStatementObj(ExtObject).IBOStatement := TIB_Cursor.Create(self);
  TdwsIBOStatementObj(ExtObject).IBOStatement.IB_Connection := FIBOConnection;
  TdwsIBOStatementObj(ExtObject).IBOStatement.IB_Transaction := FIBOTransaction;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsCreateFromDBEval(
  Info: TProgramInfo; ExtObject: TObject);
var
  ScriptObj: IScriptObj;
  DBObj: TdwsIboDataBaseObj;
begin
  ScriptObj := IScriptObj(IUnknown(Info['Database']));
  if ScriptObj = nil then
    DBObj := nil
  else
    DBObj := TdwsIboDataBaseObj(ScriptObj.ExternalObject);

  ExtObject := TdwsIBOStatementObj.Create;
  TdwsIBOStatementObj(ExtObject).IBOStatement := TIB_Cursor.Create(self);
  TdwsIBOStatementObj(ExtObject).IBOStatement.IB_Connection := DBObj.IBOConnection;
  TdwsIBOStatementObj(ExtObject).IBOStatement.IB_Transaction := FIBOTransaction;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsOpenEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    prepare;
    Open;
    First;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsFirstEval(
  Info: TProgramInfo; ExtObject: TObject);
begin                                                                                                      with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    First;
    Info['Result'] :=  not eof;
  end;

end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsNextEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    next;
    Info['Result'] :=  not eof;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsEofEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    Info['Result'] :=  eof;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsEditEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    edit;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsInsertEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    insert;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsPostEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    post;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsCancelEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    cancel;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsDeleteEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    delete;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTDatasetMethodsCloseEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Dataset(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    close;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTQueryMethodsPriorEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Query(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    prior;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTFieldMethodsSetValueEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  TIB_Column(ExtObject).AsVariant := Info['Value'];
end;

procedure Tdws2IboLib.customIBOUnitClassesTFieldMethodsGetValueEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TIB_Column(ExtObject).AsVariant;
end;

procedure Tdws2IboLib.customIBOUnitClassesTFieldMethodsSetValueStrEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  TIB_Column(ExtObject).AsString := Info['Value'];
end;

procedure Tdws2IboLib.customIBOUnitClassesTFieldMethodsGetValueStrEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  Info['Result'] := TIB_Column(ExtObject).AsString;
end;


procedure Tdws2IboLib.customIBOUnitClassesTQueryMethodsGetFilterEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Query(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    Info['Result'] :=  Filter;
  end;
end;

procedure Tdws2IboLib.customIBOUnitClassesTQueryMethodsSetFilterEval(
  Info: TProgramInfo; ExtObject: TObject);
begin
  with TIB_Query(TdwsIBOStatementObj(ExtObject).IBOStatement) do
  begin
    Filter := Info['FilterStr'];
  end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -