Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

D4: Query.ParamByName('').AsBlob := '' ersetzen

  Alt 13. Feb 2015, 08:38
Datenbank: FB • Version: 2 • Zugriff über: IBDAC
Hallo,
ich muss ein grosses Projekt von D2007 auf D4 portieren (jaja ).
Benutzt wird IBDAC.

Der Code

Query.ParamByName('Param1').AsBlob := 'bla';

wird angemeckert

richtig ist
Query.ParamByName('Param1').AsBlob := BytesOf('bla');

Das sind aber leider sehr viele Stellen.
Da wird eine von TIBCQuery abgeleitete eigene Query-Komponente benutzen,
könnte ich die erweitern.
Im Moment sieht da so aus:

Delphi-Quellcode:
procedure TQuery.StringToBlob(const ABlobFeldName, AWert: String);
begin
  {$IFDEF VER250}
  ParamByName(ABlobFeldName).AsBlob := BytesOf(AWert);
  {$ELSE}
  ParamByName(ABlobFeldName).AsBlob := AWert;
  {$ENDIF}
end;
aus
Query.ParamByName('Param1').AsBlob := 'bla';
wird
Query.StringToBlob('Param1', 'bla');

(Der Code soll schrittweise umgestellt werden, soll also mit D2007 und XE4 laufen.)

Das ist aber trotzdem noch viel zu viel Aufwand.
Bekomme ich denn das ParamByName('').AsBlob nicht irgendwie in meine eigene Klasse rein
z.B.
function ParamByName2(Name: String); TDAParam2;
so dass ich einfach nur Query.ParamByName2('Param1').AsBlob := 'bla'; schreiben muss?

Wie bekomme ich aber das ('Param1') in die Klasse rein,
oder nehme ich eine Funktion, dass passt aber auch nicht richtig.

Klappt das überhaupt, dass aus ich sowas
Query.ParamByName2('Param1').AsBlob := 'bla';
mit einer eigenen Klasse hinbekomme?

Ich hoffe, jemand kann mir helfen.

Noch mal der Wunsch: so wenig wie möglich ändern und das so schnell wie möglich

PS:
Ich habe den Quellcode von IBDAC, aber ich werden daraus nicht schlau.

Danke

Heiko


So richtig komme ich hier nicht weiter
Heiko

Geändert von hoika (13. Feb 2015 um 08:54 Uhr)
  Mit Zitat antworten Zitat