AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi fehlermeldung in der query...
Thema durchsuchen
Ansicht
Themen-Optionen

fehlermeldung in der query...

Ein Thema von Sulustaner2004 · begonnen am 20. Feb 2004 · letzter Beitrag vom 3. Mär 2004
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#1

fehlermeldung in der query...

  Alt 20. Feb 2004, 09:22
Guten Morgen,
und da bin ich wieder mit meiner obligatorischen morgenfrage...

Ich bin dabei mehrere Textboxen über eine Query anzusprechen und dank Button in eine Datenbank zu schreiben...soweit so gut...
nun bekomme ich allerdings schon bei der 2. Textbox die Fehlermeldung Adoquery1: Operation bei geschlossener Datenmenge nicht ausführbar
nun meine frage an euch...woran könnte das liegen ???

Delphi-Quellcode:
//----------erste Textbox--------------\\

   if adoquery1.Locate('Versuchs_ID',tb_versuch_id.Text,[])then

      adoquery1.FieldByName('Versuchs_ID').AsString;

    with adoquery1 do
     begin
     close;
     sql.Clear;
     sql.Add('UPDATE dbo_Versuchsflaechen_ST');
     sql.Add('SET Versuchs_ID =' + QuotedStr (tb_versuch_id.Text));
     sql.Add('WHERE Versuchsfl_Bezeichnung =' + quotedstr(cbo_bezeichnung.Text));
     //sql.Add('SELECT dbo_Versuchsflaechen_ST.Versuchs_ID,');
     //sql.Add('dbo_Versuchsflaechen_ST.Versuchsfl_Bezeichnung, dbo_Versuchsflaechen_ST.Versuchs_ID');
     //sql.Add('FROM dbo_Versuchsflaechen_ST');
     //sql.Add('WHERE dbo_Versuchsflaechen_ST.Versuchsfl_Bezeichnung ='+ quotedstr(versflid));
     //open;
     ExecSQL;
     end;

   while not adoquery1.Eof do
    begin
     adoquery1.Edit;
     adoquery1.FieldByName('Versuchs_ID').Asstring:=tb_versuch_id.Text;
     adoquery1.Post;
     tb_versuch_id.Clear;
     adoquery1.Next;
    end;
 

  //----------------zweite Textbox--------------\\

   // Bei dieser if Anweisung springt er dann raus...
   if adoquery1.Locate('Behandlung',tb_behandlung.Text,[])then
       adoquery1.FieldByName('behandlung').AsString;



    with adoquery1 do
     begin
     close;
     sql.Clear;
     sql.Add('UPDATE dbo_Versuchsflaechen_ST');
     sql.Add('SET Behandlung =' + QuotedStr (tb_behandlung.Text));
     sql.Add('WHERE Versuchsfl_Bezeichnung =' + quotedstr(cbo_bezeichnung.Text));
     //open;
     ExecSQL;
     end;




   while not adoquery1.Eof do
    begin
     adoquery1.Edit;
     adoquery1.FieldByName('Behandlung').Asstring:=tb_behandlung.Text;
     adoquery1.Post;
     tb_behandlung.Clear;
     adoquery1.Next;
    end;
bei der ersten box klappt das tadellos nur ei der 2. nicht mehr...
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 09:33
Hai Sulustaner2004,

Zitat von Sulustaner2004:
...
Delphi-Quellcode:
   while not adoquery1.Eof do
    begin
     adoquery1.Edit;
     adoquery1.FieldByName('Versuchs_ID').Asstring:=tb_versuch_id.Text;
     adoquery1.Post;
     tb_versuch_id.Clear;
>>>>> adoquery1.Next;
    end;
  //----------------zweite Textbox--------------\\

   // Bei dieser if Anweisung springt er dann raus...
   if adoquery1.Locate('Behandlung',tb_behandlung.Text,[])then
       adoquery1.FieldByName('behandlung').AsString;
.
.
Durch Dein .Next springst Du ja immer zum nächsten Datensatz. Dadurch ist dein DataSet nicht mehr im Edit-Modus!
Ausserdem hast Du da echt böse fehler (ist nicht böse gemeint von mir!!). Beschreib doch mal am besten was Du machen möchtest.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#3

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 09:44
also ich muss für mein praktikum hier eine eingabemaske erstellen die auf eine datenbank zugreift...
das lesen der daten klappt ohne probleme nur eben das schreiben klappt nicht
er springt wie gesagt nach der ersten textbox raus...
ich gebe dir die form mal als bitmap mit...vieleicht kkannst du dir ja dann mal ein bild machen @ sharky
und ich bin dir nicht böse wenn du sagst das ich fehler drin habe... darum habe ich ja gefragt

[edit=Sharky]Bild als JPG angehängt. Ist doch etwas kleiner als deine 1.x MB Version Mfg, Sharky[/edit]

sorry...könnte auf die schnelle keine jpg datei erzeugen..
Miniaturansicht angehängter Grafiken
maske.jpg  
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 10:07
Jetzt fehlt nur noch eine kleine Beschreibung was passieren soll.

Ich sehe dein Dropdown-Feld. Wofür ist dieses?
Was hat es mit dem Feld "Versuchs_id" auf sich?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#5

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 10:14
um ehrlich zu sein darf ich dir darüber nicht sonderlich viel erzählen...nur so viel...
mit dem drpdown feld werden versuchsflächen ausgeählt du bei der aktivierung der form dort reingeschreiben werden...unter jedem textfeld befindet sich ein label was die eventuell vorhandenen daten zu der versuchsfläche anzeigt...
jetzt sollen in die textboxen neue daten eingetragen und dann in der datenbank gespeichert werden...
das feld versuchs_id ist nur eine spalte in einer tabelle in der datenbank mit dem namen dbo_versuchsfleachen_ST
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 10:35
Delphi-Quellcode:
 // Bei dieser if Anweisung springt er dann raus...
   if adoquery1.Locate('Behandlung',tb_behandlung.Text,[])then
       adoquery1.FieldByName('behandlung').AsString;
Steht das wirklich so in deinem Programm?

Ist zwar syntaktisch korrekt, deshalb schmeißt dein Compiler keine Fehlermeldung aber im Programmablauf gibt's dann ein Problem...

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#7

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 10:37
ja, das steht wirklich so in meinem programm...
und wie gesagt, er macht es ja bei der ersten textbox...
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 11:01
Was funktionierte denn hiermit nicht? -> Datenbank über Button beschreiben lassen...
Du läuftst doch schon wieder in einer Schleife durch ein DataSet und änderst über Edit & Post.
Wenn du die Where-Clause, die du für die Schleife benutzt einfach in einem UPDATE verwendest. Dann kannst du alle deine Werte auf einmal und mit einem Bruchteil an Code und Traffic in die DB schreiben (siehe dein anderer Thread in dem Link oben).

Edit: früh-morgendliches-gichtfinger-tipp-syndrom
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 11:19
adoquery1.FieldByName('behandlung').AsString; Was soll denn das bringen? So wie es jetzt dort steht, suchst du via Locate nach einem Datensatz. Wenn du ihn gefunden hast, liest du ein Feld des Datensatzes aus, ohne es einer Variablen oder einem anderen Datenfeld zuzuweisen (also ein Aufruf einer Funktion, ohne das Ergebnis zu verwenden).

Danach änderst du ALLE Datensätze deiner Datenbank ab dem gefundenen Datensatz auf den Wert, der in der Textbox gefunden wird.
Wenn Locate aber nichts findet, steht der Datenbank-Cursor immer noch an der Position, an der er stand, bevor du Locate aufgerufen hast. Das bedeutet, daß du im schlimmsten Fall wirklich ALLE Datensätze deiner Datenbank anpackst und änderst.

Wenn dein Programm dann im zweiten Schritt bereits bei der IF-Anweisung einen Fehler produziert (du hast immer noch nicht geschrieben, welche Fehlermeldung du erhälst!) dann liegt es wahrscheinlich daran, daß entweder das Feld in der Datenbanktabelle nicht existiert (falsche Schreibweise) oder der Name des Textfeldes falsch ist. Es kann auch sein, daß die Zeichenkette zu lang ist und deshalb nicht in die Datenbank geschrieben werden kann...

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#10

Re: fehlermeldung in der query...

  Alt 20. Feb 2004, 11:21
nun....das problem besteht ja auch darin das ich mit delphi nicht sonderlich bewandert bin... musste mir das was ich bis jetzt kann alles selber beibringen...und das in 2 monaten !!
was mit deiner anweisung nicht funktioniert hat war das er mir incompatible typen angegeben hat... und zwar
[Fehler] versuch2.pas(205): Inkompatible Typen: 'Variant' und 'Tversuch'
und damit kann ich nichts anfangen...
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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:36 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