Einzelnen Beitrag anzeigen

Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#4

Re: Remobjects & Dataabstract & PostgreSQL

  Alt 11. Jan 2006, 21:39
OK Jetzt hab ich es gelöst
Das problem liegt nicht bei den RemObjects Komponenten, sondern in den ADO Kompos.


so hab ich das gemacht:
ich suche nach Parameter und bereite dann den SQL Script neu auf ohne ""

Delphi-Quellcode:
procedure StringFieldValidator(Sender: TDABusinessProcessor;
  aChangeType: TDAChangeType; aChange: TDADeltaChange;
  const aCommand: IDASQLCommand);
var
  currParam : TDAParam;
  paramName, newSQL, oldSQL : string;
  paramValue : variant;
  i, parNameLength, lpos, oldSQLLength : integer;
begin
  newSQL := '';
  oldSQL := aCommand.SQL;
  oldSQLLength := length(oldSQL);
   for i := 0 to aCommand.Params.Count-1 do
   begin
      currParam := aCommand.Params[i];
      if currParam.DataType = datString then
      begin
        paramValue := '''' + VarToStr(currParam.Value) + '''';
        paramName := ':'+currParam.Name;
        parNameLength := length(paramName);
        lpos := pos(paramName, oldSQL);
        while lpos > 0 do
        begin
          if not (oldSQL[lpos + parNameLength] in ['0'..'9', 'a'..'z', 'A'..'Z', '_']) then
          begin
            newSQL := copy(oldSQL, 0, lpos - 1) + paramValue +
              copy(oldSQL, lpos + parNameLength, oldSQLLength);
            oldSQL := newSQL;
            oldSQLLength := length(oldSQL);
            lpos := pos(paramName, oldSQL);
          end
          else
          begin
            if ( pos(paramName, copy(oldSQL, lpos + parNameLength, oldSQLLength)) > 0 ) then
              lpos := lpos + parNameLength - 1 +
                pos(paramName, copy(oldSQL, lpos + parNameLength, oldSQLLength))
            else lpos := -1;
          end;
        end;
      end;
   end;
   aCommand.SQL := newSQL;
end;
Dann das ganze in den BusinessProcessor ins OnProcessChange Event. und es funktioniert !!!!

Wollte euch nur die Lösung preisgeben.
Allso merke PostgreSQL & Dataabstract & Umlaute geht nicht ohne diese Funktion.

lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat