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 3 von 3     123   
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 15:34
Auch wenn man einige besonderen Regeln hat wie die mit der Kontonummer würde ich trotzdem mit der Schleife arbeiten. Die Sonderfälle kann man dann immer noch extra behandeln.

Die Zeile

if Query_Quelle.FieldByName('KONTONUMMER').AsInteger = Null

scheint wohl zu funktionieren, gefällt mir aber irgendwie nicht. Ich prüfe bei soetwas entweder auf isnull oder asinteger=0

Abfragen usw über mehrere Datenbanken sind mit Firebird möglich; z.B. in Executeblock-Statements.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.146 Beiträge
 
Delphi 12 Athens
 
#22

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 15:58
scheint wohl zu funktionieren
Nein, tut es nicht, aber das hatte ich bereits genannt, inkl. Erklärung warum nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 17:30
Es lässt sich kompilieren und ausführen, was ich eigentlich bezweifelt hatte. Ob es wirklich funktioniert, habe ich auf die Schnelle nicht geprüft.

Ich habe IBO noch nie eingesetzt; verwende eigentlich immer IBDAC und früher die IB-Komonententen. Bei beiden kann man die Insert und Update - Statments automatisch generieren lassen, geht das bei IBO nicht? Sieht mühsam aus, das alles selber zu schreiben.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.146 Beiträge
 
Delphi 12 Athens
 
#24

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 17:36
Wie gesagt, was dort passiert, hatte ich hier auch beschrieben. Kompilieren lässt es sich, aber es macht nicht das, was es soll.

Zitat:
Sieht mühsam aus, das alles selber zu schreiben.
Wurde auch schon vorgeschlagen.
z.B. SELECT * FROM table LIMIT 0 (limit 0, da vorhandene Datensätze hier ja egal sind) und dann mit DataSet.Insert/Post, sowie die Felder per Schleife übertragen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#25

AW: ParamByName geht und geht mal nicht

  Alt 28. Apr 2015, 20:28
da Quelle und Ziel den gleichen Tabellennamen haben, scheint es sich um eine "Datenbankkopie" zu handeln
Ja, klingt einleuchtend, habe ich überlesen.
Dann halt mit Stored Procedure, Execute Statement .. on external datasource.. .

Das wäre nativ, schnell, typsicher und flexibel. (Und etwas weniger Schreibkram)
Außer ein Experte hier weiß, dass es mit alten Versionen nicht geht oder remote DB.
Gruß, Jo
  Mit Zitat antworten Zitat
Walter Landwehr

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

AW: ParamByName geht und geht mal nicht

  Alt 29. Apr 2015, 13:02
Hallo Sir Rufo,

was sind
for LFieldName in LFieldNames do
für Variablen.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.146 Beiträge
 
Delphi 12 Athens
 
#27

AW: ParamByName geht und geht mal nicht

  Alt 29. Apr 2015, 13:15
Das war ein Beispiel-Code.

LFieldName ist natürlich ein lokaler String. (Schleifenvariable)
LFieldNames ist z.B. ein Array oder eine StringListe mit den FeldNamen, der zu kopierenden Felder. (man könnte auch direkt über DataSet.Fields gehn)



Und wenn es schneller sein soll, dann holft man sich vor der Schleife (über alle DataRecords) die Instanzen aller nötigen TField, anstatt immer wieder neu per FieldByName suchen zu lassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: ParamByName geht und geht mal nicht

  Alt 29. Apr 2015, 13:17
Das ist eine Enumeration.

Ich vermute das LFieldNames eine StringListe ist, dann müsste LFieldName ein String sein.
Markus Kinzler
  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
 
#29

AW: ParamByName geht und geht mal nicht

  Alt 29. Apr 2015, 13:24
Da ParamByName und FieldByName einen string erwarten, muss LFieldName irgendein Typ sein, der automatisch in einen string gecastet werden kann. Straight forward wäre da der Typ string .

LFieldNames muss ein Typ sein, der einen Enumerator bereitstellt, der zum Typ von LFieldName passt. Straight forward wäre hier TArray<string> oder TStringList oder ...
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
mkinzler
(Moderator)

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

AW: ParamByName geht und geht mal nicht

  Alt 29. Apr 2015, 13:37
Ich weiß nicht, ob es in XE2 schon geht

Delphi-Quellcode:
var ...
  fieldname: string; ...

  for fieldname in Query_Quelle.GetFieldNames do
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 14:10 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