| Autor |
Beitrag |
Quivadis
      
Beiträge: 314
UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
|
Verfasst: Mo 01.08.05 14:48
hallo Freunde,
Ich bins mal wider. Programmiere immer noch an meinen Programm für Arbeit weiter. Bin jetzt schon soweit das ich aus dem Programm ein Frame gemacht habe.
Nun zu meinen Problem. Das Programm benutzt die MS SQL-Datenbank und kann lesen und schreiben.
Das Programm als Frame (Proceduren und Funktion sind die gleichen wie im Programm) kann nur aus der DB lesen, aber nicht schreiben.
Ein DB-Problem schliesse ich aus da es mit der gleichen DB mit dem Prog geht.
Kann das am Frame liegen? das er irgendwas anders interpretiert als das Prog..
Fehlermeldungen kommen keine
mfG
Quivadis
_________________ Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Mo 01.08.05 14:55
Am Frame an sich kanns eigentlich nicht liegen...
Wär hilfreich, wenn du den entsprechenden Code posten könntest. Mit 'Das Programm' kann ich nicht viel anfangen und deinen alten Thread zu suchen bin ich ehrlich gesagt zu faul für 
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
Quivadis 
      
Beiträge: 314
UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
|
Verfasst: Mo 01.08.05 14:59
Hier die Procedure zum Speichern:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
| rocedure TFrame_Wunde.Mas_Speichern; var Kpos : integer; nx1, ny1, nx2, ny2 : integer; wert : string; begin Mas_Liste_Org; with TADOQuery.Create(nil) do begin try try ConnectionString:=ADOConnection1.Connectionstring; SQL.Text:='SELECT * FROM WUNDEMARKIERUNGZUORD WHERE WUNDE_NR ='+#39+Wunde_Nr+#39+''; Open; if Wunde_Nr = (FieldByName('WUNDE_NR').AsString) then begin edit; end else begin INSERT; FieldValues['WUNDE_NR']:=Wunde_Nr; end;
begin wert:=listboxMas.Items[0]; kpos:=pos(',',wert); nx1:= strtoint(copy(wert, 0, kpos-1)); ny1:= strtoint(copy(wert, kpos+1, length(wert)-1));
wert:=listboxMas.Items[1]; kpos:=pos(',',wert); nx2:= strtoint(copy(wert, 0, kpos-1)); ny2:= strtoint(copy(wert, kpos+1, length(wert)-1)); end;
TBlobField(FieldByName('MASSSTABX1')).AsInteger := nx1; TBlobField(FieldByName('MASSSTABy1')).AsInteger := ny1; TBlobField(FieldByName('MASSSTABX2')).AsInteger := nx2; TBlobField(FieldByName('MASSSTABy2')).AsInteger := ny2;
TBlobField(FieldByName('MASSSTABCM')).AsFloat := Lmassstab_cm; TBlobField(FieldByName('MASSSTABPIX')).AsFloat := Lmassstab_pix;
WMarkierungszuord_Nr:=FieldByName('WUNDEMARKIERUNGZUORD_NR').AsString;
Post;
close; except end; finally Free; end; end;
Mas_Liste_Zoom; end; |
Wie gesagt lauft als Programm und speichert in DB, als Frame auch kein Fehler , aber speichert scheinbar nix.
_________________ Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Mo 01.08.05 15:21
Ich denke, du musst nach dem Post noch ein Commit machen, damit die Daten endgültig in die Datenbank eingetragen werden.
Stefan
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Mo 01.08.05 15:25
Entweder das oder beim kopieren der Komponenten ist irgendwas vor die Hunde gegangen. Kenn mich jetzt mit ADO leider nicht so wirklich aus.
Gruß
noidic
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
Quivadis 
      
Beiträge: 314
UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
|
Verfasst: Mo 01.08.05 15:33
@Stefan.Buchholtz:
Stefan.Buchholtz hat folgendes geschrieben: | Ich denke, du musst nach dem Post noch ein Commit machen, damit die Daten endgültig in die Datenbank eingetragen werden.
Stefan |
Diesen Befehl scheint mein Delphi nicht zu kennen.
Kannst du nochmal genauer beschreiben was du meinst?
_________________ Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Mo 01.08.05 16:06
Quivadis hat folgendes geschrieben: | @Stefan.Buchholtz:
Stefan.Buchholtz hat folgendes geschrieben: | Ich denke, du musst nach dem Post noch ein Commit machen, damit die Daten endgültig in die Datenbank eingetragen werden.
Stefan |
Diesen Befehl scheint mein Delphi nicht zu kennen.
Kannst du nochmal genauer beschreiben was du meinst? |
Ich sehe gerade, bei ADO heisst das CommitTrans. Du musst nach dem Post folgende Zeile einfügen:
Delphi-Quelltext 1:
| ADOConnection1.CommitTrans; |
Keine Garantie dass das so funktioniert, mit ADO kenne ich mich nicht so gut aus.
Stefan
|
|
Quivadis 
      
Beiträge: 314
UBUNTU 9.04
D2005 PERS, JAVA, D7 Pers.
|
Verfasst: Fr 05.08.05 12:54
Das Proplem lag gar nicht an der DB, sondern an einer Einstellung in Delphi.
In Delphi unter Objektoptionen kann man ja einstellen ob die Forms automatisch oder von Hand erstellt werden sollen.
Dort war eingestellt das man sie von Hand erstellen muss. Das war leider falsch und verursachte denn oben benannten Fehler, weil ich direkt darauf zugreife.
Danke an alle die mir geholfen haben.
_________________ Wissen ist macht, nichts wissen macht auch nichts. ODER: Wer nichts weis, kann nichts vergessen.
|
|
|