Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ParamByName geht und geht mal nicht (https://www.delphipraxis.net/184859-parambyname-geht-und-geht-mal-nicht.html)

khh 28. Apr 2015 12:43

AW: ParamByName geht und geht mal nicht
 
Zitat:

Zitat von DeddyH (Beitrag 1299271)
Bei dermaßen vielen Feldern in einer Tabelle würde ich mich zunächst einmal fragen, ob ich das auch wirklich ordentlich durchnormalisiert habe. ....

ich würde sogar auf dem zweiten Blick sagen, da ist nix mit Normalisierung :-(

DeddyH 28. Apr 2015 12:47

AW: ParamByName geht und geht mal nicht
 
Wieso, Markus hat ja schon einige Punkte genannt?

khh 28. Apr 2015 12:49

AW: ParamByName geht und geht mal nicht
 
Sorry, habe mich falsch ausgedrückt.
Ich wollte sagen, die Tabelle ist wohl überhaupt nicht normalisiert.
Eine solche wohl dringend erforderlich.

DeddyH 28. Apr 2015 12:53

AW: ParamByName geht und geht mal nicht
 
Achso. Genau das habe ich ja durch die Blume anzudeuten versucht ;)

Sir Rufo 28. Apr 2015 12:58

AW: ParamByName geht und geht mal nicht
 
Mal ganz abgesehen von Normalisierung oder der direkten Ausführung auf dem Server:

Bevor ich so einen langen Rattenschwanz programmieren müsste, würde ich mir einfach eine Schleife bauen:
Delphi-Quellcode:
while not qryBildAlt.eof do
begin
  Query_Quelle.close;
  Query_Quelle.ParamByName('PATIENTNR').AsInteger:= qryBildAlt.FieldByName('PATIENTNR').AsInteger;
  Query_Quelle.Open;

  // sag es mit drei Zeilen, statt mit n Zeilen

  for LFieldName in LFieldNames do
  begin
    Query_Ziel.ParamByName( LFieldName ).Value := Query_Quelle.FieldByName( LFieldName ).Value;
  end;

  Query_Ziel.ExecSQL;
end;

Dejan Vu 28. Apr 2015 14:12

AW: ParamByName geht und geht mal nicht
 
Stimmt. Wenn sowas nicht wäre

Delphi-Quellcode:
if Query_Quelle.FieldByName('KONTONUMMER').AsInteger = Null then
  Query_Ziel.FieldByName('KONTONUMMER').AsInteger := 1200
else
  Query_Ziel.ParamByName('KONTONUMMER').AsInteger := Query_Quelle.FieldByName('KONTONUMMER').AsInteger;

p80286 28. Apr 2015 14:26

AW: ParamByName geht und geht mal nicht
 
Und auch das kann man mit
SQL-Code:
select ...,decode(feld1,null,1200),..
abgefangen werden.

Gruß
K-H

Sir Rufo 28. Apr 2015 14:53

AW: ParamByName geht und geht mal nicht
 
Zitat:

Zitat von p80286 (Beitrag 1299551)
Und auch das kann man mit
SQL-Code:
select ...,decode(feld1,null,1200),..
abgefangen werden.

Gruß
K-H

Ebend, dafür ist ja so ein SELECT da, dass ich mir die Daten selektiere, die ich wirklich haben möchte ;)

jobo 28. Apr 2015 15:06

AW: ParamByName geht und geht mal nicht
 
Vielleicht auch
Code:
insert into .. select ..
?
Oder sind es verschiedene DB?
Ob es mit Firebird und database link geht, weiß ich nicht.

p80286 28. Apr 2015 15:23

AW: ParamByName geht und geht mal nicht
 
da Quelle und Ziel den gleichen Tabellennamen haben, scheint es sich um eine "Datenbankkopie" zu handeln:?:

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz