AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TFDQuery.ParamByName().AsBlob
Thema durchsuchen
Ansicht
Themen-Optionen

TFDQuery.ParamByName().AsBlob

Offene Frage von "Zwirbel"
Ein Thema von Zwirbel · begonnen am 4. Jul 2016 · letzter Beitrag vom 4. Jul 2016
Antwort Antwort
Zwirbel

Registriert seit: 17. Aug 2009
66 Beiträge
 
Delphi 11 Alexandria
 
#1

TFDQuery.ParamByName().AsBlob

  Alt 4. Jul 2016, 16:06
Datenbank: Firebird • Version: 3 • Zugriff über: Delphi
Hallo,

beschäftige mich gerade mit Firebird 3.0. Auch wenn ich das Beispiel-Projekt nicht zum Laufen bekommen habe (siehe http://www.delphipraxis.net/189552-f...uft-nicht.html) habe ich mittlerweile meine Applikation so weit im Griff. Es geht lediglich darum Daten aus einer anderen Datenbank (basierend auf Paradox) nach FB zu übertragen. Es sind ca. 150 Tabellen. Beim letzten Umstieg von der Vorgängerdatenbank auf Paradox hatte ich quasi für jede einzelne Tabelle (damals waren es noch deutlich weniger), eine eigne Routine geschrieben und hatte somit für alle Felder der Pdx-Tabellen auch persistene Felder an der Hand. Diesmal wollte ich mir die Arbeit nicht machen und habe eine globale Routine geschrieben die mir einfach alle Tabellen der Quelle durchläuft und die Felder in die Zieltabelle in FB überträgt. Ohne persistente Felder bin ich nun gezwungen die Felder per ParamByName anzusprechen, je nach Datentyp unterschiedlich, soweit auch kein Problem.
Delphi-Quellcode:
    Session.GetTableNames(dbsAM_Pdx.DatabaseName, '', False, False, lbTableNames.Items); // Liste der Tabellen holen
    for i := 0 to Pred(lbTableNames.Count) do begin
      tbl_Pdx.TableName := lbTableNames.Items[i];
      tbl_Pdx.Open;
      try
        tbl_Pdx.First;

        { Alle Datensätze der Quelltabelle durchlaufen }
        for j := 0 to Pred(RecordCount) do begin
          for k := 0 to Pred(tbl_Pdx.Fields.Count) do begin
            FieldNameUpper := UpperCase(tbl_Pdx.Fields[k].FieldName);
            FieldNameMixed := tbl_Pdx.Fields[k].FieldName;

            case tbl_Pdx.Fields[k].DataType of
              ftString : qry_FB.ParamByName(FieldNameUpper).AsString := tbl_Pdx.FieldByName(FieldNameMixed).AsString;
Aber ich habe zwei Tabellen die BLOBs verwenden. Und das klappt nicht, für das TTable gibt es kein AsBlob oder etwas vergleichbares.
  ftBlob : qry_FB.ParamByName(FieldNameUpper).AsBlob := tbl_Pdx.FieldByName(FieldNameMixed).???; Hat jemand eine Idee wie man das hinbekommt? TIA.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TFDQuery.ParamByName().AsBlob

  Alt 4. Jul 2016, 16:26
Keine Ahnung ob das mit Blobs auch gehen kann (wahrscheinlich eher nicht), aber ich würde bei den Feldtypen nicht unterscheiden, sondern immer .Value zuweisen.

Beispiel:
 qry_FB.ParamByName(FieldNameUpper).Value := tbl_Pdx.FieldByName(FieldNameMixed).Value;
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Zwirbel

Registriert seit: 17. Aug 2009
66 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TFDQuery.ParamByName().AsBlob

  Alt 4. Jul 2016, 16:49
Keine Ahnung ob das mit Blobs auch gehen kann (wahrscheinlich eher nicht), aber ich würde bei den Feldtypen nicht unterscheiden, sondern immer .Value zuweisen.

Beispiel:
 qry_FB.ParamByName(FieldNameUpper).Value := tbl_Pdx.FieldByName(FieldNameMixed).Value;
Ja, das klappt.

Vielen Dank für die rasche Antwort.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz