AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Datenübergabe an ein anderes Feld
Thema durchsuchen
Ansicht
Themen-Optionen

Datenübergabe an ein anderes Feld

Ein Thema von HartiMcFly · begonnen am 21. Feb 2006 · letzter Beitrag vom 21. Feb 2006
Antwort Antwort
HartiMcFly

Registriert seit: 3. Mär 2005
18 Beiträge
 
#1

Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 10:49
Datenbank: Firebird • Version: 1.5.2 • Zugriff über: IB Database, IB Transaction, IBQuery, IBUpdateSQL
Hallo,

ich weiß nicht ob ich einfach nur einen Denkfehler mache, aber ich hoffe mal ihr könnt mir hier weiterhelfen.

Ich habe eine Datenbank mit 2 Tabellen.
Ich habe im Delphi eine Maske geschrieben, mit der diese Tabellen gefüllt werden.
Ich bin zur Zeit soweit, dass die erste Tabelle ohne Probleme angenommen wird, heißt die Dateneingabe und der Post funktionieren.

Jetzt habe ich in Tabelle 1 und 2 jeweils die Spalte KUNDENNR.
Ich möchte nun die in Tabelle 1 eingegebene KUNDENNR an Tabelle 2 weitergeben.
Ich habe es mit folgender Anweisung probiert.


IBQuery2.FieldbyName('KUNDENNR').AsInteger:=IBQuer y1.FieldbyName('KUNDENNR').AsInteger;

Lasse ich das Programm nun laufen, so bekomme ich folgende Fehlermeldung:

IBQuery2: Das Feld 'KUNDENNR' wurde nicht gefunden.
Das Feld existiert aber definitiv, ich kann z.B. ohne Probleme über ein DBEdit auf dieses Feld zugreifen.

Kann mir hier jemand von euch weiterhelfen?

Danke
  Mit Zitat antworten Zitat
Frank Borland

Registriert seit: 12. Feb 2006
Ort: Hamburg
55 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 11:34
Moin, moin,

wie sieht denn das SQL- Statement zu IBQuery2 aus? Ist das Feld drin?

Gruß

Malte
  Mit Zitat antworten Zitat
HartiMcFly

Registriert seit: 3. Mär 2005
18 Beiträge
 
#3

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 12:28
Hallo, das Feld ist in dem SQL Statement mit drin, sonst könnte ich ja auch nicht über ein DBEdit drauf zugreifen, oder??

Danke
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 12:43
Das DBedit hat nicht unbedingt was damit zu tun. Das Ganze hat nur was mit Deinem DataSet zu tun. Wieso verwendest Du eigentlich IBQuery ? Aber egal, außer dem überflüssigen BDE-Ballast dürfte es dasselbe sein wie ein TDataset. Und das bedeutet folgendes : das DBEdit hat (standardmäßig) das, was man mit SELECT * FROM BLA auch zur Verfügung hat. Ansonsten könnte man kein DataField auswählen. Wird jetzt ein DataSet.close gemacht oder im OI active auf false gesetzt, dann muß für den nächsten Zugriff wieder ein Select zusammengebaut und dann die Datenmenge wieder geöffnet werden. Und genau da wird das besagte Feld nicht drinstehen ! Und deshalb auch die nicht beantwortete Frage von meinem Vorredner "Frank Borland".
Gruß
Hansa
  Mit Zitat antworten Zitat
HartiMcFly

Registriert seit: 3. Mär 2005
18 Beiträge
 
#5

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 13:02
Hmm also ich habe in dem IBQuery selber folgende SQL Anweisung

Select * from ADRESSE

Mein Quellcode sieht dann folgender Maßen aus

procedure TForm1.Button1Click(Sender: TObject);
begin
IBQuery1.Open;
IBQuery1.Insert;
IBQuery1.Post;
IBTransaction1.Commit;
IBTransaction1.StartTransaction;

IBQuery2.FieldbyName('KUNDENNR').AsInteger:=IBQuer y1.FieldbyName('KUNDENNR').AsInteger;

IBQuery2.Open;
IBQuery2.Insert;
IBQuery2.Post;
IBTransaction1.Commit;
IBTransaction1.StartTransaction;

end;

Falls jemand ein Beispiel mit einer ähnlichen Aufgabenstellung hätte, wäre ich sehr daran interessiert

Gruß Patrick
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 13:10
Ist Kundennummer in IBQuery1 von Dir eingegeben, oder wird das durch einen Generator von der Datenbank in einem Trigger generiert... Ist letzteres der Fall, so hast Du nach dem Posten deines ersten Records natürlich noch nichts in der Spalte Kundennummer stehen. Um die Kundennr auszulesen hast Du 2 Möglichkeiten:
- close, open, und zum letzten Record blättern (sehr schlecht Angewohnheit)
- oder nach dem Posten einfach die GEN_ID aus dem Server auslesen, am besten in einer gleiche Transaktion in der auch dein eigentliches Posten abgeht. (schon viel besser
  Mit Zitat antworten Zitat
HartiMcFly

Registriert seit: 3. Mär 2005
18 Beiträge
 
#7

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 13:14
Die Kundennummer in IBQuery1 ist kein vom Generator erzeugter Wert, sondern ein selbst eingegebener
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 13:26
Und wie sieht denn jetz dein SQL Statement für IBQuery2 aus.

Arbeitest Du eventuell mit berechneten Feldern, und hast die persistenten Felder deinem Dataset noch nicht hinzugefügt?
  Mit Zitat antworten Zitat
Frank Borland

Registriert seit: 12. Feb 2006
Ort: Hamburg
55 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 14:23
ist bei der Zuweisung IBQuery2 überhaupt aktiv?

IBQuery2.FieldbyName('KUNDENNR').AsInteger:=IBQuer y1.FieldbyName('KUNDENNR').AsInteger;
IBQuery2.Open;

was soll das "open" nach der Zuweisung?


Gruß


Malte
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Datenübergabe an ein anderes Feld

  Alt 21. Feb 2006, 18:04
Das Select ist immer noch nicht klar ersichtlich. 8) Was steht vor dem OPEN ?
Gruß
Hansa
  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 14:34 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