Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo!!

Ich hab eben ein kleines Windowsprogramm geschrieben... es ist eigentlich alles wunderbar und funktioniert auch...

bis auf:

ICH KANN EINEM FELD DER DATENBANK KEINE NEUEN WERTE ZUWEISEN!!!

*heul*

ich wähle einen wert aus... sag ihm, dass ich den eintrag gerne editieren möchte und dann kommt die zuweisung... hier kommt eine fehlermeldung... schalte ich die zuweisung für testzwecke aus, so führt er das programm inkl. update und tabelle schließen bis zum ende aus...

aber der lässt mich ums verrecken die zuweisung nicht ausführen... und ja... ich habe darauf geachtet, dass es der selbe datentyp ist...

liegt das am DB2 ODBC treiber in der version 7?? lässt der keine änderungen zu??

mach ich sonst was falsch??

wie könnt ich das trotzdem hinbekommen???

HILFE!!!

DANKE!!!!!!!

*wink*

Thias

...

Nachtrag!!

...

Die Fehlermeldung lautet:

CLI0150E Der Treiber unterstützt die Operation nicht. SQLSTATE=S1C00

... ich befürchte ja das schlimmste, und zwar, dass der ODBC treiber das einfach nicht kann... ABER DER HAT DAS ZU KÖNNEN... ist doch schließlich version 7.01.irgendwas...

falls ich recht hab... wie könnte ich in C++ windows-programmierung (Dialogfenster) das sonst noch lösen, dass ich evtl direkt auf die DB2 DB zugreif??

*wink*

Thias

hallo nochmal!!!

wie bereits mein letzter eintrag hier, so hab ich nach wie vor das problem nicht gelöst...

kurz zur erinnerung...

ich schreibe ein dialog-programm in MS V C++

ich mache über ODBC eine abfrage nach einem eindeutigen datensatz

ich öffne den recordset

ich sag, dass ich den recordset gern mit EDIT() verändern möchte

ich mach einem feld der tabelle eine zuweisung (löst den fehler aus)

/*

fehlermeldung:

CLI0150E Der Treiber unterstützt die Operation nicht. SQLSTATE=S1C00

*/

ich würde (!!!) mit einem UPDATE() die geänderten werte zurückschreiben

ich würde (!!!) den RS wieder schließen...

...

auf der IBM-seite hab ich jetzt nach stundenlanger suche was gefunden:

ZITAT: (http://www-1.ibm.com/support/docview.wss?uid=swg1PQ36209)

If this error occurs in an ODBC application, or the ODBC

application trace is examined, the symptom is SQLGetData()

returning SQL_ERROR due to SQLSTATE S1C00.

The symptom can be intermittent. The cause of the symptom is an

uninitialized field in an ODBC control block that is built when

processing result sets from stored procedures.

ZITAT ENDE

...

und was sagt uns jetzt diese beschreibung??

diese beschreibung ist für DB2 V6 ... wir haben aber 7.irgendwas

es ist dann auch noch eine beschreibung für version 5... die haben wir aber auch nicht... für version 7 find ich nix passendes!!

irgendwelche ratschläge??

oder wenigstens trost!?!

danke

:confused:

Thias

also beim automatischen einfügen durch SDI

hat das zu ersetzende feld den typ CString... genauso wie auch der zuzuweisende wert CString ist... auch die länge stimmt exact überein

...

die zuweisung sieht so aus:

tbl.m_strFilter = _T("[FELD1] = '");

tbl.m_strFilter += var1;

tbl.m_strFilter += _T("' AND ");

tbl.m_strFilter += _T("[FELD2] = '");

tbl.m_strFilter += var2;

tbl.m_strFilter += _T("'");

tbl.Open();

if(tbl.IsBOF())

{

AfxMessageBox("Keine entsprechenden Daten vorhanden!");

tbl.Close();

}

tbl.Edit();

//in der nächsten zeile bricht er ab und bringt folgende fehlermeldung:

//CLI0150E Der Treiber unterstützt die Operation nicht.

//SQLSTATE=S1C00

tbl.FELD3 = var3;

tbl.Update();

tbl.Close();

AfxMessageBox("Daten wurden aktualisiert!");

...

in meinem anderen projekt geht das aber so... allerdings mit MySQL über ODBC V 3.5

...

der DB zugriff erfolgt automatisch durch SDI... wie könnt ich das manuell machen, dass ich ohne ODBC direkt auf die entsprechende DB zugreif?

ich weiß langsam nicht mehr weiter!!

*wink*

Thias

:marine

mich hats gefindet!!! (O:

hallo leutz!!

und danke nochmal!!!!!

ich habs gestern gefunden...

hier die lösung:

DB2 mag anscheinend die zuweisung über Recordsets nicht!!!

Mein Problem war allerdings, dass ich mir das selbst lernen musste und mir dafür ein anscheinend nicht sonderlich geeignetes Buch hierfür zur Verfügung stand/steht... in diesem Buch war nicht erklährt oder auch nur erwähnt, dass Zugriffe auch über "ExecuteSQL()" erfolgen können... da bin ich erst gestern dahinter gestiegen, wie das über diesen Befehl funzt...

denn die Beschreibungin der C++ Onlinehilfe lässt, wie ich finde, auch etwas zu wünschen übrig!!!

naja... wie auch immer.... jetzt funzt es... und ich darf mein ganzes projekt umschreiben... dürfte 4 oder 5 tage arbeit bedeuten... (O:

danke nochmal fürs helfen!!!

*wink*

Thias

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.