AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Form mit mehreren DataSources
Thema durchsuchen
Ansicht
Themen-Optionen

Form mit mehreren DataSources

Ein Thema von Andidreas · begonnen am 20. Dez 2007 · letzter Beitrag vom 21. Dez 2007
Antwort Antwort
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Form mit mehreren DataSources

  Alt 20. Dez 2007, 17:23
Datenbank: MySQL • Version: 5.0.41 • Zugriff über: MySQLDAC
aloah...


bekomme ich ein problem, wenn eine form mehrer datasources hat???

Delphi-Quellcode:
procedure Tlogpic_form.bitbtn_createClick(Sender: TObject);

begin

  Try
    With (dbm.main_data) Do
    Begin
      Active := False;
      datsrc_maindata := nil;
      Application.ProcessMessages;
      SQL.Clear;

      SQL.Add('Select '
             +'PSKSPN, PSKMPN, PSKPNT, PSKTON, PSKCNR, PSKVNR, '
             +'PCKSPN, PCKITM, PCKORT, PCKBEZ, PCKANR, PCKFBE, PCKCUP, '
             +'MATANR, MATCUP, MATDIM '
             +'From LOGPSK '
             +'Left Outer Join LOGPCK '
             +'On PSKSPN = PCKSPN '
             +'Left Outer Join LOGMAT '
             +'On PCKANR = MATANR '
             +'And PCKCUP = MATCUP '
             +'where PSKSPN = "'+ dbm.No_LOGPIC.FieldByName('PICSPN').Text +'"');

      //datsrc_maindata.DataSet := dbm.main_data;
      Active := True;

      //dbgrid_maindata.Columns[0].Field := dbm.main_data.FieldByName('PSKSPN');
      //dbgrid_maindata.Columns[1].Field := dbm.main_data.FieldByName('PSKMPN');
      //dbgrid_maindata.Columns[2].Field := dbm.main_data.FieldByName('PSKPNT');
      //dbgrid_maindata.Columns[3].Field := dbm.main_data.FieldByName('PSKTON');
      //dbgrid_maindata.Columns[4].Field := dbm.main_data.FieldByName('PSKCNR');
      //dbgrid_maindata.Columns[5].Field := dbm.main_data.FieldByName('PSKVNR');
      //dbgrid_maindata.Columns[6].Field := dbm.main_data.FieldByName('PCKITM');
      //dbgrid_maindata.Columns[7].Field := dbm.main_data.FieldByName('PCKORT');
      //dbgrid_maindata.Columns[8].Field := dbm.main_data.FieldByName('PCKBEZ');
      //dbgrid_maindata.Columns[9].Field := dbm.main_data.FieldByName('PCKANR');
      //dbgrid_maindata.Columns[10].Field := dbm.main_data.FieldByName('PCKFBE');
      //dbgrid_maindata.Columns[11].Field := dbm.main_data.FieldByName('PCKCUP');
      //dbgrid_maindata.Columns[12].Field := dbm.main_data.FieldByName('MATDIM');
    End
  Except
    MessageDlg('Error while getting Datas from DB!', mtError, [mbOK], 0);
  End;

  ShowMessage(dbm.main_data.FieldByName('MATDIM').AsString);

end;
wenn ich die hier deaktivierten befehle aktiviere, und mein programm laufen lasse, dann bekomme ich
eine exception(siehe anhang) wenn ich die query komponente (dbm.maindata) auf true setzen möchte...

kann das daran liegen, das ich mehrer datasources auf der form habe die auch zum teil aktiv sind???

oder woran könnte es liegen???
Miniaturansicht angehängter Grafiken
db_exception_137.jpg  
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Form mit mehreren DataSources

  Alt 20. Dez 2007, 17:29
es müsste wohl dbm.No_LOGPIC.FieldByName('PICSPN').asString heissen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

Re: Form mit mehreren DataSources

  Alt 20. Dez 2007, 17:44
nein daran liegts nicht!
hab das gerade geändert und trotzdem kommt immer noch die gleiche exception...

der sql befehl müsste soweit auch in ordnung sein, denn wenn ich das füllen des dbgrids sowie die zuweisung für das datasets aus dem programm nehme kriege ich von der sql query dir richtigen daten zurück geliefert!
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
20. Dez 2007, 17:55
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Delphi-Frage
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#5

Re: Form mit mehreren DataSources

  Alt 20. Dez 2007, 18:01
Hallo...

welches DBMS benutzt du ?
welche Komponenten ?

...Zugriffsverletzung gibt es mit Zeos z.B. wenn in der Query die Property Connection vergessen wurde.

  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: Form mit mehreren DataSources

  Alt 20. Dez 2007, 18:05
ich habs im ersten beitrag nachgetragen...

aber hier nochmal

datenbank --> mysql 5.0.41
komponente --> mysqldac


das ich die query nicht mit der connection verbunden habe, habe ich schon überprüft, das stimmt aber eigentlich alles!!!
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Form mit mehreren DataSources

  Alt 20. Dez 2007, 18:42
Schreib mal das dbm.main_data.Active;
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Form mit mehreren DataSources

  Alt 21. Dez 2007, 08:03
Moin Andreas,

syntaktisch ist dein Code ja fehlerfrei, aber die Vorgehensweise ist überdenkenswert. Warum erneuerst du die statischen Spalten des DBGrid bei jeder Anfrage? Warum fragst du mehr Spalten bei der DB an als du im Grid zeigst? Warum riskierst du Schreibfehler bei den Spaltennamen, indem du sie mehrmals schreibst?

Wenn du das DBGrid mehrmals zur Laufzeit umkonfigurierst, dann kann es eventuell passieren, dass Spalten bestehen bleiben, die auf nicht existente Felder verweisen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Form mit mehreren DataSources

  Alt 21. Dez 2007, 09:11
Vermutlich liegt es an dieser Zeile:
datsrc_maindata := nil;
Du greifst mit
datsrc_maindata.DataSet := dbm.main_data; auf ein Objekt zu, das garnicht existiert.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: Form mit mehreren DataSources

  Alt 21. Dez 2007, 11:31
danke erst mal für die antworten... inzwischen funktioniert es auch obwohl ich eigentlich nix geändert hab am source code...

Zitat von marabu:
Warum erneuerst du die statischen Spalten des DBGrid bei jeder Anfrage?
Warum riskierst du Schreibfehler bei den Spaltennamen, indem du sie mehrmals schreibst?

Wenn du das DBGrid mehrmals zur Laufzeit umkonfigurierst, dann kann es eventuell passieren, dass Spalten bestehen bleiben, die auf nicht existente Felder verweisen.
@marabu aus denn fragen die ich in deinem zitat noch hab stehen lassen werde ich nicht schlau sry... aber viell. kannst dus noch mal anders formulieren damit ichs versteh :-[

zu der frage warum ich mehr spalten abfrage wie ich anzeige, die anzeige dient nur zu testzwecken! die daten die ich mir im query ermittel, werden später weiterverarbeitet! und da benötige ich alle felder die im query angegeben sind!!!
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  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 18:55 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