AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ParamByName geht und geht mal nicht
Thema durchsuchen
Ansicht
Themen-Optionen

ParamByName geht und geht mal nicht

Ein Thema von Walter Landwehr · begonnen am 25. Apr 2015 · letzter Beitrag vom 29. Apr 2015
Antwort Antwort
Seite 1 von 2  1 2      
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#1

AW: ParamByName geht und geht mal nicht

  Alt 25. Apr 2015, 16:12
Wenn Du Dir sicher bist, dass der Fehler hier auftritt
Query_Ziel.ParamByName('PATIENTNR').AsInteger := qryBildAlt.FieldByName('PATIENTNR').AsInteger; dann würde ich einmal schauen, bei welcher Umwandlung der Fehler entsteht.

Also die Anweisung splitten
Delphi-Quellcode:
lTempInteger := qryBildAlt.FieldByName('PATIENTNR').AsInteger;
Query_Ziel.ParamByName('PATIENTNR').AsInteger := lTempInteger;
Wenn der Fehler erst in der zweiten Zeile kommt, dann kannst Du Dir ja den Wert von lTempInteger im Fehlerfall in einen Try-Except-Block anzeigen lassen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: ParamByName geht und geht mal nicht

  Alt 25. Apr 2015, 16:34
Bei dermaßen vielen Feldern in einer Tabelle würde ich mich zunächst einmal fragen, ob ich das auch wirklich ordentlich durchnormalisiert habe. Und wenn die Daten nirgends angezeigt werden (sieht auf den ersten Blick danach aus) würde ich mich als Nächstes fragen, ob ich das tatsächlich clientseitig abarbeiten möchte, oder ob eine SP nicht sinnvoller wäre. Erst wenn ich beide Fragen guten Gewissens bejahen kann, mache ich das über 2 Queries, und da würde ich nur Value von Quelle auch Value von Ziel zuweisen, ohne Typumwandlungen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ParamByName geht und geht mal nicht

  Alt 25. Apr 2015, 17:20
Danke DeddyH, ich habe es mal ohne Typenwandlung probiert. Zur Zeit läuft die Übernahme. Kann mir jemand eine Lektüre (Buch, Anleitung) zu Erstellung von SP nennen.

Danke an alle.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ParamByName geht und geht mal nicht

  Alt 25. Apr 2015, 17:33
Eine Normalisierung würde mehr bringen. Wie oft wird diese Funktion ausgeführt?

In diesem Fall wäre die SP im Großen Und Ganzen eine 1:! Umsetzung des Codes

So auf den 1. Blick fallen einem da schon einige Tabellen auf, in welche man diese "Monstertabelle" aufspalten könnte:

PATIENT
ADRESSE
KOMMADRESSE ( Telefon, Fax, Email, Pager, ... 1 DS pro Eintrag)
KRANKENKASSE,
ARZT
usw.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ParamByName geht und geht mal nicht

  Alt 25. Apr 2015, 17:34
http://www.firebirdsql.org/refdocs/l...procedure.html
http://ibexpert.net/ibe/index.php?n=...resAndTriggers
http://www.destructor.de/firebird/storedproc.htm
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#6

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 12:43
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
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 12:47
Wieso, Markus hat ja schon einige Punkte genannt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#8

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 12:49
Sorry, habe mich falsch ausgedrückt.
Ich wollte sagen, die Tabelle ist wohl überhaupt nicht normalisiert.
Eine solche wohl dringend erforderlich.
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 12:53
Achso. Genau das habe ich ja durch die Blume anzudeuten versucht
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 12:58
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;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:33 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