-
Danke für die schnelle Antwort!
Den ConnectionString habe ich geändert!
(einfach den Provider=MSDASQL rausgeschmissen) funktioniert genauso.
Wenn ich die Abfrage/Änderung "anders" mache
ertwa so
Code:
aDataSet := TAdoDataSet.Create(nil);
aDataSet.ConnectionString :=User Id=user;Password=passwort;Data Source=rhdbd_16;Driver=iSeries Access ODBC Driver;Initial Catalog=VWWE400;Mode=ReadWrite;';
// query zusammenbasten
aDataSet.CommandText := 'select WAAUMG from rhdbd_16.WAKO'
+' where WAFIRM='+quotedStr(firm)
+' and WAWKNR='+quotedStr(edtWerkNummer.Text)
+' and WAAUNR='+quotedStr(edtAuftragsNummer.Text)
+' and WAAUPO='+quotedStr(edtIndex.Text);
// ausführen
try
aDataSet.Active := True;
except
ShowMessage('Can´t open dataset!');
end;
// datenQuelle Editieren einschalten
aDataSet.Edit;
recCount := aDataSet.RecordCount;
if recCount >0 then
begin
// zu ändernden wert setzen
aDataSet.FieldByName('WAAUMG').Value := edtBadParts.Text;
end;
// änderungen posten
try
aDataSet.Post
except
ShowMessage('Write not exception!');
end;
// aufräumen usw......
Wenn ich es so mache bekomme ich ein richtige Exeption und nicht "nur" eine zugriffsverletzung.
Die heißt:
Code:
EOleExeption: Meldung: '[IBM][iSeries Access ODBC-Treiber][DB2 UDB]SQL7967 - PREPARE für Anweisung WAKO beendet'. Prozess wurde angehalten ....
Vielleicht kann irgendjemand mit dieser Fehlermeldung mehr anfangen.
Gruß
Stefan
-
Vielleicht ist es auch so wie Baldur sagte, dass du Strings in ein Integer-Feld zu speichern versuchst?
Code:
// query zusammenbasten
aDataSet.CommandText := 'select WAAUMG from rhdbd_16.WAKO'
+' where WAFIRM='+quotedStr(firm) <--- Wirklich Text??
+' and WAWKNR='+quotedStr(edtWerkNummer.Text) <--- Wirklich Text??
+' and WAAUNR='+quotedStr(edtAuftragsNummer.Text) <--- Wirklich Text??
+' and WAAUPO='+quotedStr(edtIndex.Text);
Ansonsten würde ich den Update-String testhalber Hard-Coded hinterlegen. Wenn es dann funktioniert liegt der Fehler beim zusammenstellen des Strings.
Oder du versuchst den String, der nach dem Zusammenbasteln erzeugt wurde 1:1 im STRSQL auszuführen.
Dort sollte zumindest die gleiche Fehlermeldung kommen, und mit F1 erhälst du dann auch mehr Informationen.
-
"Prozess wurde angehalten" ist schon seltsam. Die Meldung kenne ich nicht. SQL7967 ist nur eine Fertigmeldung und dürfte keine Ausnahme auslösen.
Allerdings kenne ich auch Tado nicht.
In ADO gibt es eine Supports-Eigenschaft, in der man prüfen kann, ob überhaupt ein Update erlaubt ist.
Natürlich ist der Feldtyp wichtig.
WAAUNR und WAAUPO sind z.B. numerisch!
-
Habe die numerischen Felder numerisch gemacht oder zumindest nicht mehr in Hochkomma "gepackt". Keine Änderung!
Wenn die SQL - Select Abfragen funktionieren, ohne auf den Datentyp zu achten, kann es dann trotzdem sein, dass das beim setzen nicht funktioniert?
Habe mal die Ganzen Supports ausgeben lassen (die sind vom typ cursorOptions)!
hier das ergebnis
Code:
HoldRecords supported
MovePrevious supported
AddNew supported
Delete supported
Update supported
Bookmark supported
ApproxPosition supported
UpdateBatch supported
Resync supported
Notify supported
Find supported
hm, update wird supported!
muss der cursor irgendiwe eingestellt werden?
was ist denn in der Regel vorzuziehen
Code:
Ändern des Wertes eines Feldes das mit Select ermittelt wurde und dann update mit table.Post
ODER
Code:
eine SQL Abfrage wie
UPDATE table SET feld=3 WHERE bedingung;
BTW: funktioniert bei mir beides nicht, im Moment
Gruß Stefan
Und was ganz andres: liegt die Schmalheit des Antwort Editierfensters am Browser? (ich habe hier Firefox 3.5)oder ist das einstellbar?
-
Ohne dir nahetreten zu wollen, aber die Maschine VWWE400 kenne ich ganz gut.
Ich denke, hier ist der Zugriffsschutz PCSACC/400 aktiv so dass du nicht updaten darfst!
PS:
Der User RHPCPGM darf das nicht so einfach.
-
Ok, wie gesagt ich bin blutiger Anfänger!
Dann werde ich mir jetzt erst mal einen User mit ausreichenden Rechten zum updaten beschaffen.
Danke erstmal.
Gruß
Stefan
-
Update WAKO
Hallo Stefan,
also die Felder WAFIRM und WAWKNR sind Alpha.
WAAUNR und WAAUPO sind Num (wie Baldur gesagt hat)
Das Feld WAAUMG ist num (Ist ja die Auftragsmenge)
Aber kann es sein, dass du einen Update über ODBC nur auf eine Indexierte Datei machen kannst?
Dann müßte die WAKO01 deine Datei sein. In XPPS gibt es eine ganze Menge logischer Dateien.
Aber noch ein Hinweis, die Menge nur im Auftragskopf ändern bringt evtl. nicht viel. Du must auch die OFMA berücksichtigen.
Klaus
-
Auf dem obigen System ist das Sicherheitstool PCSACC/400 aktiv.
Es darf ja nun mal nicht jeder irgendwelche Daten ändern (ausser mir).
-
Hallo.
Der Quellcode sieht nach Delphi aus.
Lass bei den numerischen Feldern die "quotedstr" weg.
Gruß Joe
Similar Threads
-
By Hubert in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 26-08-07, 10:10
-
By RaMai in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 28-11-06, 08:59
-
By Burgy Zapp in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 29-06-06, 18:19
-
By M Scheid in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 12-06-06, 14:02
-
By jogisarge in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 10-05-06, 17:26
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks