| |
VB & DatenbankenFehler beim Schreiben in mySQL-Datenbank | | | Autor: AWenig | Datum: 17.08.04 14:31 |
| Hallo,
ich habe ein Problem beim Schreiben in eine mySQL-Datenbank mit der Zeichenlänge von Textfeldern:
Ich habe u.a. ein Feld in mySQL definiert als VARCHAR(20). In der Datenbank befinden sich bereits einige Einträge.
In einem Formualr trage ich in ein Textfeld Text ein, der in dieses Feld der Datenbank geschrieben werden soll. Ist der Text nicht länger als 8 Zeichen, funktioniert das hervorragend. Ist der Text länger, erscheint folgende Fehlermeldung:
Laufzeitfehler "-2147217887"
Fehler bei einer aus mehreren Schritten bestehenden Operation.
Prüfen Sie die einzelnen Statuswerte.
Was ich nicht verstehe ist, dass es normalerweise funktioniert und ab einer bestimmten Zeichenlänge nicht.
Was ich noch festgestellt habe:
Wenn in der Datenbank bereits ein Eintrag existiert, der eine Zeichenlänge von 8 Zeichen hat, kann ich einen neuen Datensatz anfügen, wenn er auch maximal aus 8 Zeichen besteht. Ich vermute also mal, dass das weniger ein VB sondern vielmehr ein Problem meiner mySQL Datenbank ist.
Hier noch der Code:
Dim Ebenen As New ADODB.Recordset
Dim Ab_Ebenen As String
' 1. Datenbank Ebenen öffnen
' ===================================
Set cn_Ebenen = New ADODB.Connection
cn_Ebenen.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=" & Server & ";" _
& "DATABASE=weniconcard;" _
& "UID=root;" _
& "Password=;" _
& "OPTION=16384"
cn_Ebenen.CursorLocation = adUseClient
cn_Ebenen.Open
' 2. Datensatz schreiben
' ====================================
Ebenen.Open "SELECT * FROM ebenen", cn_Ebenen, adOpenDynamic, _
adLockOptimistic
nr = Ebenen.RecordCount + 1
With Ebenen
.AddNew
Ebenen.Fields(0).Value = id_nr
Ebenen.Fields(1).Value = E_Name ' <== Hier erscheit beschrieber
' Fehler
Ebenen.Fields(2).Value = Belong_Nr
Ebenen.Fields(3).Value = verantw.Text
.Update
.Close
End With
cn_Ebenen.Close Würde mich freuen, wenn jemand einen Lösungsvorschlag hat.
Viele Grüße,
Andreas | |
Re: Fehler beim Schreiben in mySQL-Datenbank | | | Autor: AWenig | Datum: 17.08.04 15:55 |
| Hallo,
ich habe nochmal was getestet:
Ich habe die Elemente der Datenbank-Tabelle gelöscht und nun versucht, einen Eintrag mit dem Code aus meinem ersten Beitrag vorgenommen. Dies geschah ohne Probleme und ohne Fehlermeldung.
Der 2. Eintrag hat nur funktioniert, wenn die Zeichenlänge kleiner oder gleich der des ersten Eintrages war.
Habe ich einen Fehler in der mySQL-Datenbank gemacht? Die Lösung wäre natürlich, wenn ich als ersten Eintrag einen Dummy setzen würde, der die maximale Zeichenlänge hat. Aber elegant wäre das nicht.
Viele Grüße,
Andreas | |
Re: Fehler beim Schreiben in mySQL-Datenbank | | | Autor: mrx13 | Datum: 07.09.04 22:58 |
| Der Grund für deinen Fehler ist die nicht unterstützte CursorType/CursorLocation-Kombination.
http://dev.mysql.com/tech-resources/articles/vb-cursors-and-locks.html
Zitat:
Zitat: | | While there are a large number of potential CursorType/CursorLocation combinations, the ones that are currently available to the MySQL/VB developer are: adUseClient/adOpenStatic, adUseServer/adOpenForwardOnly, and adUseServer/adOpenDynamic. | |
| |
Re: Fehler beim Schreiben in mySQL-Datenbank | | | Autor: AWenig | Datum: 08.09.04 10:13 |
| danke, das ist ein sehr guter Artikel und ich werde die verschiedenen adUse..., adOpen... und adLock-Typen mit ihren unterschiedlichen Kombinationen einmal ausprobieren, um deren Wirkung zu Testen und um zu sehen, ob dies die Fehlerursache sein könnte.
Grüße,
Andreas | |
Re: Fehler beim Schreiben in mySQL-Datenbank | | | Autor: QDaniel | Datum: 14.06.05 13:55 |
| Wollte mal fragen ob jemand jetzt ne Problem-Lösung für das Problem kennt...
da ich zurzeit auch mit diesem Fehler kämpfe....
MfG euer QDaniel
-------------------------------------------
Follow the White Rabbit !!! | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|