PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Fehler] Vb6 MYSQL Connection



raian
23.10.2005, 17:52
hi!

Ich habe ein problem mit der Verbindung von meinem PC zu einer Datenbank.
Ich habe alle treiber usw installiert und auch in meiner ENtwicklungsumgebung angestellt.

Joa, dann habe ich mir den Beispielcode, der bei dem Tutorial das ich verwende dabei war, genommen und angepasst. Daten stimmen alle usw. Die Verbindung per Treiber hab ich auch eingestellt, ich hab aber nichts mit MSAccses gemacht, aber da stand das man das nicht brauch, stimmt das?

Nunja, jedenfalls sagt es bei dem beispielcode das ein Objekt oder eine Objektvariable fehlt.


Hier mein COde, hoffe drauf das mir jemand weiterhelfen kann!



Private Sub Form_Load()
' Connection-String festlegen
Dim sConn As String
Dim sServer As String
Dim sUserName As String
Dim sPassword As String
Dim sDBName As String
' Server Hostname (oder IP)
sServer = "mysql.lima-city.de"
' Benutzerdaten
sUserName = "USER26252"
sPassword = "*******"
' Datenbank-Name
sDBName = "DB1116949315"
sConn = "Provider=MSDASQL;Driver=MySQL;" & _
"Server=" & sServer & ";Database=" & sDBName
' Connection öffnen
oConn.Open sConn, sUserName, sPassword
End Sub


(Geh richtig das FormLoad soll, ich willd as bei dem Start der Exe die Verbindung aufgebaut wird, also sollte das timmen, oder? )

BeyondTheTruth
23.10.2005, 19:10
Hast du den MySQL ODBC Treiber installiert?
Welche Fehlermeldung erhälst du genau?
Tip: Ändere in deinem Post im Code das PW und danach auch nochmals auf dem DB Server selbst.
Ist nicht so optimal, das hier so einfach preiszugeben... ;)

raian
23.10.2005, 19:25
Hmm, ups^^ hab das falsche kopiert, das was ich eigentlich kopieren wolte da war das net mit drinne..^^"

Ähm, ja, ich hab den OBCD Treiber installiert, und auch eingestellt oder wie man das nennt ;)

Die fehlermeldung:


Laufzeitfehler 424:

Objekt erforderlich!

BeyondTheTruth
24.10.2005, 11:28
Und an welcher Stelle bringt er das?
Beim oConn.Open ?
Eigentlich sieht der Code richtig aus.. werd ihn gleich mal probieren und dann hier editieren.

EDIT:
Ha.. ganz einfach eigentlich.
Du musst erst mal natürlich "oConn" als Objekt für eine (ADO)DB-Connection deklarieren.
Sonst weiß der Compiler damit nichts anzufangen.. (und die Funktion "open" kann dann natürlich auch net verwendet werden)

Dim oConn As New ADODB.Connection

BTW.:
Für die Abfragen musst du auch eigene Objekte deklarieren, die dann die Results zurückbekommen, die du bei einer Abfrage über oConn.execute erhälst (z.B. oConn.execute("Select * from Irgendwastable where Name='BeyondTheTruth'")
Da brauchst du ein "Recordset-Objekt"
(deklarieren z.B. mit

Dim oRS As New ADODB.Recordset
)

In Verwendung könnte das dann so aussehen:
oRS=oConn.execute("Select * from Irgendwastable where Name='BeyondTheTruth'")

So ein Recordset-Objekt enthät dann immer die Ergebnisse der Abfrage, die sich einfach über den Namen der jeweiligen Spalte ausgeben lassen. Hat dein Table also 5 Spalten (z.B. Name, Adresse, Telefonnummer, Mailadresse, PersonalID) und du fragst alle Spalten in deinem Selectbefehl ab, dann kannst du sie so ausgeben:

oRS("Name)
oRS("Adresse")
oRS(Telefonnummer")
oRS("Mailadresse")
oRS("PersonalID")

Erwartest du, dass bei deiner Abfrage mehr als eine Zeile zurückgegeben wird, kannst du dich im Recordset mit folgenden Funktionen jeweils eine Zeile hoch, bzw. runter begeben:

oRS.MovePrevious
oRS.MoveNext

zur ersten, bzw. zur letzten Zeile würdest du mit folgenden Funktionen kommen:

oRS.MoveFirst
oRS.MoveLast

Letzter Tip (es sei denn, du fragst noch nach was *g*):

Mit folgender Schleife kannst du alle Reihen eines Resultsets durchgehen (und innerhalb der Schleife dann z.B. immer jeweils bestimmte Reihen einer Zeile ausgeben, oder auf irgendwas überprüfen... wie auch immer):

Do Until oRS.EOF

[WAS GETAN WERDEN SOLL.. z.B. AUSGEBEN DER EINZELNEN ELEMENTE...]

Loop

raian
24.10.2005, 13:49
Vielen Dank! Werde ich gleich ausprobieren, danke sehr!

edit:
Hmm, jetz sgat mir das Ding:

Der Datenquallname wurde nicht gefunden, es wurde kein Standarttreiber angegeben.


Hmm, ich hab den Triber installiert und eine Verbindung namens verbindung1 gemacht, müsste diese vielleicht irgenwohin?

PS:
Es springt in folgender Zeile an:


oConn.Open sConn, sUserName, sPassword

BeyondTheTruth
24.10.2005, 15:08
Wenn du so arbeitest, wie oeben im Code angegeben, brauchst du keine fixe Verbindung..
Im Prinzip baust du zur Laufzeit das auf, was du sonst in den ODBC Settings als Verbindung speicherst... (indem du beim oConn.open den "Driver", den "Server", die "Database", sowie "Username" und "Password" angibst.)
Alternativ kannst du auch eine fixe Verbindung über die System-ODBC Settings einrichten und die im Code verwenden Der Aufruf würde dann lauten

oConn.open("DSN=Verbinungsname")

bzw. in deinem Code, weil du den Verbindungsstring ja vorher in einer Variable speicherst:

sConn = "DSN=Verbindungsname"

statt eben

sConn = "Provider=MSDASQL;Driver=MySQL;" & _
"Server=" & sServer & ";Database=" & sDBName


Statt Verbindungsname musst du den Namen eintragen, den du der Verbindung in den ODBC Settings gegeben hast (aus dem vorigen Post entnehme ich mal, dass sie "verbindung1" heißt).

Theoretisch müsste es aber eben auch auf die Art funktionieren, wie dus jetzt hast...
Aber bevor wir uns da lange Gedanken machen, probiers zuerst mal es über die vorgefertigte Verbindung.
Also einfach

sConn = "Provider=MSDASQL;Driver=MySQL;" & _
"Server=" & sServer & ";Database=" & sDBName

mal raus
und dafür

sConn = "DSN=verbindung1"

rein.

raian
24.10.2005, 18:32
Wow!

Jetz hat meine Firewall schon ageschlagen und gesagt: VisualBasic versucht auf das Internet zuzugreifen. Habe ich bestätigt und dann kam Laufzeitfehler:

[



EInfach nur eine [


Nunja, wenigstens ist schonmal eine Verbindung zum Internet da ;)
Ich überprüfe mal ob da irgendwelche einstellung oder Parameter sind die in dem Script von eben nicht drinne sind...


edit: Huhu!
Ich habs hingekreigt das der fehler draußen ist! Aber trotzdem möchte ich jetz das dieser ganze Kram da in meiner Exe Datei steht, und ich net bei anderen das einstellen muss, vorallem weil sie das dann acuh auslesen könen!

BeyondTheTruth
24.10.2005, 20:33
Wow!

Jetz hat meine Firewall schon ageschlagen und gesagt: VisualBasic versucht auf das Internet zuzugreifen. Habe ich bestätigt und dann kam Laufzeitfehler:

[



EInfach nur eine [


Nunja, wenigstens ist schonmal eine Verbindung zum Internet da ;)
Ich überprüfe mal ob da irgendwelche einstellung oder Parameter sind die in dem Script von eben nicht drinne sind...


o_O ...
Sachen gibts *g*



edit: Huhu!
Ich habs hingekreigt das der fehler draußen ist! Aber trotzdem möchte ich jetz das dieser ganze Kram da in meiner Exe Datei steht, und ich net bei anderen das einstellen muss, vorallem weil sie das dann acuh auslesen könen!

Fein! :)

Auslesen können sie gar nix, da das PW bei der Speicherung der ODBC Settings NICHT mitgesichert wird..
Das Eingeben vom PW dient lediglich um am Ende den Verbindungstest zu machen.
Das PW, das dann bei der Verbindung verwendet wird, gibst du ja im Code an..
von daher brauchst du diralso keine Sorgen zu machen.
Das Einrichten der Verbindung braucht der User nicht selbst zu machen, sondern kann ganz einfach über einen Batch gemacht werden. Zumal ohnehin der ODBC-Treiber erst installiert werden muss - also wirst du wahrscheinlich net drum-rum kommen eine Setup Routine zu kreieren. Besagter Batch kann da dann also auch noch ganz einfach eingebaut werden.
Bei Interesse, helf ich gern weiter.

Willst dus dennoch ohne fest im System gespeicherte ODBC Verbindung machen - also nach der Methode wies Anfangs war - heißts wohl erneut auf Fehlersuche gehen...
Kopier bitte den ganzen Code, wie du ihn jetzt hast (in der Form ohne das "DSN=verbindung" eben) nochmal rein..
Mal sehen ob ich den gleichen Fehler krieg.

Aber wie gesagt: Dass der User den ODBC Treiber für MySQL installieren muss, wirst du so oder so nicht verhindern können... D.h. wirst du, wie ebenfalls schon erwähnt, ein kleines Setupprogramm hinzufügen müssen (wenn das ganze wirklich einfach und schnell portable sein soll).

raian
24.10.2005, 20:44
Gut...hier erstmal der Code:

Private Sub Form_Load()
MsgBox "Willkommen bei Wakeup Maike, dem etwas anderen Chatsystem ;)"
' Connection-String festlegen
Dim oConn As New ADODB.Connection
Dim sConn As String
Dim sServer As String
Dim sUserName As String
Dim sPassword As String
Dim sDBName As String
' Server Hostname (oder IP)
sServer = "mysql.lima-city.de"
' Benutzerdaten
sUserName = "USER26252"
sPassword = "*******"
' Datenbank-Name
sDBName = "DB1116949315"
sConn = "Provider=MSDASQL;Driver=MySQL;" & _"Server=" & sServer & ";Database=" & sDBName
' Connection öffnen
oConn.Open sConn, sUserName, sPassword
End Sub

Private Sub inp1_Change()
lbl4.Caption = inp1.Text
End Sub

Private Sub but1_Click()
MsgBox "Diese Anwendung ist momentan leider nicht verfügbar!"
End Sub



Nun...wie schreibt man denn einen Setup?^^" Aber da kann man ja im Notfall auch diese SetupManager nehmen, soweit ich weiß. So wie es da steht kommt die fehlermeldung mit der Datenquelle die nciht gefunden wird und das kein Standarttreiber zur verfügung steht...


edit: ich hättes mir zwar nicht zugetraut, aber ich habs hingekriegt ;)

Ich musste nur bei sConn einen Eintrag mehr machen der den Treiber angibt!

sConn = "Provider=MSDASQL.1;DRIVER={MySQL Connector/ODBC v5};Server=" & sServer & ";Database=" & sDBName

BeyondTheTruth
25.10.2005, 10:44
Gut...hier erstmal der Code:

Private Sub Form_Load()
MsgBox "Willkommen bei Wakeup Maike, dem etwas anderen Chatsystem ;)"
' Connection-String festlegen
Dim oConn As New ADODB.Connection
Dim sConn As String
Dim sServer As String
Dim sUserName As String
Dim sPassword As String
Dim sDBName As String
' Server Hostname (oder IP)
sServer = "mysql.lima-city.de"
' Benutzerdaten
sUserName = "USER26252"
sPassword = "*******"
' Datenbank-Name
sDBName = "DB1116949315"
sConn = "Provider=MSDASQL;Driver=MySQL;" & _"Server=" & sServer & ";Database=" & sDBName
' Connection öffnen

[...]
Ich musste nur bei sConn einen Eintrag mehr machen der den Treiber angibt!

sConn = "Provider=MSDASQL.1;DRIVER={MySQL Connector/ODBC v5};Server=" & sServer & ";Database=" & sDBName


Seltsam - Ich hab im Hinterkopf, dass Driver=MySQL eigentlich immer gereicht hat...
Kanns zwar hier nicht ausprobieren, weil ich hier keine MySQL DB und Treiber hab (nur MSSQL) - aber werd das heute Abend Zuhause nochmal machen.
Hätte schwören können, das funzt auch wie am Anfang angegeben.
Na however - zumindest scheinen ja jetzt alle Probleme aus der Welt geschafft zu sein.
Was bastelst du da eigentlich? ^^

raian
25.10.2005, 12:52
Hmm, erstmal nochmal Danke!^^

Und dann beantworten wa nochmal deine Frage:

Es wird so ne Art Messenger, okay, MySQL wird da nicht die beste Lösung sein, aber es ist perfekt für meine Zwecke, weils halt nicht NUR ein Messenger werden soll. Das Ding kann zwar Nachrichten übermitteln (Oder mehr soll es mal können^^") aber auch diverse andere Zwecke erfüllen:

-Wie der Name Wkeup Maike schon sagt, soll es mal eine Art aufweck Programm werden, hab ne Freundin die schläft manchmal fast ein oder so, da is sowas ganz nützlich ;)
-Dann eben noch die Messenger Funktion
-Dann die Möglichkeit es meinen Wünschen anzupassen
-Privates Chatsystem ;)



Wie gesgat, nciht die beste Lösung, aber einfacher als all die andren die ich mal so gesehen hab ;)

raian
25.10.2005, 20:51
Hmm, joa.. erstmal Sorry for Doppelpost, aber das mit dem EIntragen klappt nicht, ist an der zeile was falsch:

ergebnis = oConn.Execute("INSERT INTO wake (message) VALUES ('inp1.Text')")

?


Danke im Voraus^^" *sich langsam blöd vorkommt*

Übrigens, ja ich habe ergebnis als Objektvariable deklariert wie du es oben gepostet hast Beyondthtruth

BeyondTheTruth
27.10.2005, 12:20
Hey. Messenger klingt gut. Hab ich auch mal gemacht in VB. Is schon länger her. Müßte mir mal sen Source raussuchen und vielleicht sogar mal erweitern...
Wäre eigentlich dochmal ne Idee um das Programmierforum wieder in Gang zu bringten: Ein IM für die Kingdom-Community als neues Projekt...
Mit dem man z.B. auch Überblick über die aktuellsten Themen, bzw. die z.Zt. "heißesten" Themen (mit vielen Posts) hat - sowie sehen kann, wer grade im Ring ist in die Profile der einzelnen User kann. PMs an alle schicken kann, die nicht im IM-Netzwerk des Kingdoms sind schnell einen Überblick über den eigenen PN-Posteingang hat, und und und...
Wär doch auch mal ein nettes Projekt, finde ich.
Aber wer weiß ob sich außer uns beiden hier überhaupt noch wer im Thread einfindet.. ^^.

Na egal - BTT (in diesem Falle nicht "BeyondTheTruth"):

Also generell fällt mir bei deiner Befehlszeile mal auf, dass du fix den String "inp1.Text" einfügst - und ich denke mal, dass das nicht beabsichtigt ist.
Was du wohl eher willst ist ein:

ergebnis = oConn.Execute("INSERT INTO wake (message) VALUES ('" & inp1.Text &"')")

Wenn dir der Unterschied, bzw. der Grund warum das so gehört nicht ganz klar ist - einfach nochmal nachfragen.
Schätze aber mal, dass du's verstehen wirst ;).

ALLERDINGS sollte auch der vorherige Aufruf keinen Fehler bringen (habs zwar jetzt nicht getestet, aber sieht eigentlich richtig aus...)
Solltest du also tatsächlich eine Fehlermeldung kriegen, dann poste sie mal bitte.

raian
27.10.2005, 12:40
Allllso, ich habe jetzt in einem anderen FOrum nochmal hilfe bekommen, und von google... *ist das stundenlange googeln langsam leid*

Die haben mir gesagt das die mSQL Verbindung nur in dem Sub aktiv ist in dme sie gemacht wurde. Okay, ich verschiebe also die Vberbindung in das
Sub but1.Click


Alles cool, dann mache ich noch den eintrag richtig wie du es geschreiben hast (ist mi gar nicht aufgefallen ^_^ )

Wenn ich es jetzt per Exe aufrufe, also vorher Comilier stürtzt die Exe Datei ab, wenn ich es nicht compilier und per Entwicklungsumgebung starte stürtzt die gleich mit ab! Und keinen eintrag *frustriert*


PS: Bei dem projekt wäre ich gleich dabei, aber dafür bräuchte man das Passwort, den Host usw von RPG-Kingdom, und ich glaube irgendwie nicht das der/die liebe Admin das rausgibt... hab gerade vergessen obs ne Frau oder nen Mann ist... :eek:


Nunja, ich poste als Anhang nochmal meinen aktuellen Code.

PS: Das Merkwürdige ist (Ich habe mit Soppmarken getestet) das das programm erst bei dem End Sub des but1 abstürtzt! Muss dort vielleicht noch eine befehlszeile hin? Ich hatte mal gelsen das die Variable die zum eintragen genommen wird wieder freigemacht werden mus, vielleicht ist das ja der Fehler..*nochmal googlet*





' Sicherer Textverschl?sselung
Public Function VernamCode(sOriginal As String, _
sPassword As String) As String

Dim i As Long
Dim aktpos As Long
Dim bAkt As Byte
Dim bCode As Byte

VernamCode = ""

' Passwort auf die Länge des Klartextes bringen
' Dazu wird z.B. aus "Geheim" dann "GeheimGeheimGehe...."
aktpos = 1
For i = Len(sPassword) + 1 To Len(sOriginal)
sPassword = sPassword & Mid(sPassword, aktpos, 1)
aktpos = aktpos + 1
If aktpos > Len(sPassword) Then aktpos = 1
Next i

For i = 1 To Len(sOriginal)
bAkt = Asc(Mid(sOriginal, i, 1))
bCode = Asc(Mid(sPassword, i, 1))

VernamCode = VernamCode & Chr(bAkt Xor bCode)
Next i
End Function
'
'
'

Private Sub inp1_Change()
lbl4.Caption = inp1.Text
End Sub

Private Sub but1_Click()

Dim oConn As New ADODB.Connection
Dim sConn As String
Dim sServer As String
Dim sUserName As String
Dim sPassword As String
Dim sOriginal As String
Dim sCode As String
Dim sDBName As String
' Server Hostname (oder IP)
sServer = "mysql.lima-city.de"
' Benutzerdaten
sUserName = "USER26252"
sOriginal = "********"
sPassword = "************"
sCode = VernamCode(sOriginal, sPassword)
sOriginal = VernamCode(sCode, sPassword)
' Datenbank-Name
sDBName = "DB1116949315"
sConn = "Provider=MSDASQL.1;DRIVER={MySQL Connector/ODBC v5};Server=" & sServer & ";Database=" & sDBName
' Connection öffnen
oConn.Open sConn, sUserName, sOriginal
MsgBox "Funktion wird ausgeführt, trage ein... Bitte warten!"
' Abschicken des Insert-Statements
oConn.Execute "INSERT INTO (wake) VALUES ('" & inp1.Text & "')"
End Sub

Lukas
27.10.2005, 12:50
Wäre eigentlich dochmal ne Idee um das Programmierforum wieder in Gang zu bringten: Ein IM für die Kingdom-Community als neues Projekt...
Mit dem man z.B. auch Überblick über die aktuellsten Themen, bzw. die z.Zt. "heißesten" Themen (mit vielen Posts) hat - sowie sehen kann, wer grade im Ring ist in die Profile der einzelnen User kann. PMs an alle schicken kann, die nicht im IM-Netzwerk des Kingdoms sind schnell einen Überblick über den eigenen PN-Posteingang hat, und und und...
Wär doch auch mal ein nettes Projekt, finde ich.Und wie willst du das realisieren? Afaik hat das vB für sowas keine API.
Und falls du's wirklich machst, bitte portabel und nicht in VB.

raian
27.10.2005, 13:11
@Masterquest:W ie gesgat, dafür bräuchte man dann die MySQL Daten vom Kingdom!

Und weil ich viel in PHP Progge.. ich weiß wie die tabellen usw innem Forum aufgebaut sind...

Es WÜRDE gehen... aber es wäre schwer ^_^

BeyondTheTruth
27.10.2005, 14:22
Und wie willst du das realisieren? Afaik hat das vB für sowas keine API.
Und falls du's wirklich machst, bitte portabel und nicht in VB.

Hab ich gesagt, dass ich das mache? o_O (Warum immer jede kleine Idee die man mal so vor sich hinprabbelt, bzw. hinschreibt als "JA! DAS MACH ICH JETZT"" aufgefasst wird *g* ;)..)

Zumal viele Wege nach Rom führen - speziell wenn es um "anzapfen", bzw. "korrespondieren" mit Webseiten geht.
Man benötigt da nicht wirklich Zugriff auf die Datenbanken.. alle Daten, die benötigt werden lassen sich übers Web aufrufen...
Da gäbe es einerseits den Ansatz z.B. Microsofts IE-Control einzubauen (ja.. das wird jetzt gleich wieder verpöhnt) und die Daten im IM-Client selbst dann entsprechend zu bearbeiten, bzw. auszuwerten oder andererseits alles über eine weitere Zwischenstation (also einen eigenen Server) "absuagen und parsen zu lassen", um an den Client dann nur noch den fertigen Datenstrom zu übergeben - dann könte jeder nach einer Spezifikation wie die Anfragen an den Server auszusehen haben und die Antworten kommen, seinen eigenen Client schreiben und das Ganze könnte auch für mehere OS, bzw. gleich als protable Anwendung gelöst werden...
Allerdings sehe ich hierbei ein kleines Problem, wenns ums handling von PNs geht. Dazu müsste nämlich immer UserName und Passwort an den Server übertragen werden...



PS: Bei dem projekt wäre ich gleich dabei, aber dafür bräuchte man das Passwort, den Host usw von RPG-Kingdom, und ich glaube irgendwie nicht das der/die liebe Admin das rausgibt... hab gerade vergessen obs ne Frau oder nen Mann ist...


Seit Neuestem beides..
aber nicht im Einem ^^"




Die haben mir gesagt das die mSQL Verbindung nur in dem Sub aktiv ist in dme sie gemacht wurde. Okay, ich verschiebe also die Vberbindung in das

Hm.. ja.. kann sein.. ^^.
Werd deinen CODE gleich mal ausprobieren ;) (soweit das geht, ohne die richtige DB Struktur)

EDIT: Seh grade.. das wird wohl net wirklich viel bringen. Na denn.. mal DB und Tabelle anlegen..
Was schreibt das Ding denn beim Absturz?
Übrigens kanns nicht schaden, wenn du am Ende (bzw. beim Unload Event deines Hauptforms, über
Private Sub Form_Unload(Cancel As Integer) -) ein oConn.close machst, um die Verbindung selbst zu schließen.

Nochwas fällt mir grad auf: Du führst das SQL Statement zwar aus, hast es aber im aktuell geposteten Code deinem deklariertem RecordSet Objekt nicht zugeordnet.. (bzw. so wie es scheint auch gar nicht mehr deklariert!?)

EDIT2:
So.. Code grad kopiert und das entsprechende Form mit Button und Input gebastelt und wollte grade die Tabelle erstellen, da fiel mir auf, dass du in deinem aktuellen INPUT Statement nen Syntaxfehler hast.
Müßte ja eigentlich heißen

Set ergebnis= oConn.Execute("INSERT INTO wake(message) VALUES ('" & inp1.Text & "')")

Du brauchst beim INSERT ja zunächst die Tabelle und dann in Klammer die Felder in die du einfügen willst. (du hattest in der letzten Codeversion nur noch "INSERT INTO (wake) Values" ...!?)


EDIT3:

So funzt es bei mir mit MSSQL und einer Tabelle wake mit der Spalte "message":



Private Sub but1_Click()

Dim ergebnis As New ADODB.Recordset
' NEU!!!!!!

Dim oConn As New ADODB.Connection
Dim sConn As String
Dim sServer As String
Dim sUserName As String
Dim sPassword As String
Dim sOriginal As String
Dim sCode As String
Dim sDBName As String
' Server Hostname (oder IP)

'BITTE WIEDER DURCH DIE RICHTIGEN DATEN ERSETZEN
sServer = "localhost"
' Benutzerdaten
sUserName = "Admin"
sOriginal = "***"
sPassword = "*******"

'BITTE BEACHTEN, DASS ICH DIE ZWEI ZEILEN AUSKOMMENTIERT HABE. MIR WAR NICHT
'GANZ KLAR WARUM DU DAS PW FÜR DEN SQL ZUGRIFF MIT EINER INTERNEN ROUTINE
'"VERSCHLÜSSELST"... NOTWENDIG???
'sCode = VernamCode(sOriginal, sPassword)
'sOriginal = VernamCode(sCode, sPassword)

'UND WEITER DURCH DIE RICHTIGEN WERTE ERSETZEN - DIE DB UND v.A. DEN DRIVER!
' Datenbank-Name
sDBName = "MeetMe"
sConn = "DRIVER=SQL Server;Server=" & sServer & ";Database=" & sDBName


' Connection öffnen
oConn.Open sConn, sUserName, sOriginal
MsgBox "Funktion wird ausgeführt, trage ein... Bitte warten!"
' Abschicken des Insert-Statements

'UND SO SOLLTE DAS STATEMENT AUSSEHEN, DAMITS FUNZT ;)
Set ergebnis = oConn.Execute("INSERT INTO wake(message) VALUES ('" & inp1.Text & "')")
End Sub


So.. hab dir eh ganz deutlich gekennzeichnet wo du wieder umschreiben musst, bzw. ich was gemacht habe.
(und ich war mir net sicher ob das "verschlüsseln" des PWs für den SQL Zugriff Programmintern notwendig ist... deshalb hab ich die zwei Zeilen mal auskommentiert (hab die dafür nötige Routine auch gar net mitkopiert)

raian
27.10.2005, 16:42
Das verschlüsseln des Passwortes ist nicht ötig, aber bei mir stand mal das passwort im Quellcode,, auch nach dem Compilieren, und dem habe ich so abgetan (welche gewählte ausdrucksweise xD)


Werde deinen code jetzt mal testen, danke im Voraus!

edit:
Hmm.. merkwürdig...schießt mir immernoch alles ab... o.O

Was mach ich falsch... *flenn*

BeyondTheTruth
27.10.2005, 18:55
Jo.. dann ist das mit der Verschlüsslung auch verständlich.
HM.. die IDE stürzt einfach ab?
Not so good... in dem Fall: kompilieren und ausführen.. dann solltest du auf jeden Fall ne Meldung kriegen..
(und poste den Code wie er nun bei dir aussieht..)

raian
27.10.2005, 19:38
Wenn ich es compilier und ausführe stürtzt es auch nur ab und das wars... verwirrend...

BeyondTheTruth
27.10.2005, 20:03
Code! :p

Hm.... einfach nur abstürzen ist komisch.. die MSGBOX kommt auch nicht?

raian
27.10.2005, 21:23
Hmm, doch sie kommt, dann läd es noch ein wneig und verreckt dasnn vollends!

BeyondTheTruth
28.10.2005, 01:43
Ich werds Morgen mal hier auf meinem heimischen Notebook mit MySQL probieren.
Würde dir für Versuchszwecke übrigens auch raten, MySQL lokal zu installieren.. ;)

BeyondTheTruth
28.10.2005, 13:01
Sorry für den Doppelpost...
SOOOOOOOOOOOOOOOOO
Bin jetzt daheim und hab gleich mal ausprobiert.

Es funzt ^^" (mit MySQL)



Folgender Code ist jetzt bei mir drin:

-ACHTUNG.. ich hab im geposteten Code bereits alles wieder auf deine Variablen gestellt.
Lediglich das PW musst du wieder ersetzen. Das einzige was sonst anders zu dem Code ist, den du jetzt haben müsstest ist der Driver. Mein Tip: Kopier den Code, so wie er hier ist 1:1 in die IDE, ersetz das PW und probiers dann nochmal.
Übrigens: Ich hoffe du hast die Tabelle und die Spalte eh angelegt? ^^ -



Private Sub but1_Click()

Dim ergebnis As New ADODB.Recordset
' NEU!!!!!!

Dim oConn As New ADODB.Connection
Dim sConn As String
Dim sServer As String
Dim sUserName As String
Dim sPassword As String
Dim sOriginal As String
Dim sCode As String
Dim sDBName As String
' Server Hostname (oder IP)

'BITTE WIEDER DURCH DIE RICHTIGEN DATEN ERSETZEN
sServer = "mysql.lima-city.de"
' Benutzerdaten
sUserName = "USER26252"
sOriginal = "****"
sPassword = "***"

'BITTE BEACHTEN, DASS ICH DIE ZWEI ZEILEN AUSKOMMENTIERT HABE. MIR WAR NICHT
'GANZ KLAR WARUM DU DAS PW FÜR DEN SQL ZUGRIFF MIT EINER INTERNEN ROUTINE
'"VERSCHLÜSSELST"... NOTWENDIG???
'sCode = VernamCode(sOriginal, sPassword)
'sOriginal = VernamCode(sCode, sPassword)


' Datenbank-Name
sDBName = "DB1116949315"
sConn = "DRIVER=MySQL ODBC 3.51 Driver;Server=" & sServer & ";Database=" & sDBName


' Connection öffnen
oConn.Open sConn, sUserName, sOriginal
MsgBox "Funktion wird ausgeführt, trage ein... Bitte warten!"
' Abschicken des Insert-Statements

'UND SO SOLLTE DAS STATEMENT AUSSEHEN, DAMITS FUNZT ;)
Set ergebnis = oConn.Execute("INSERT INTO wake(message) VALUES ('" & inp1.Text & "')")
End Sub


Wenn du das jetzt so kopierst und einfügst, danach das PW ersetzt und ausführst sollte es eigentlich funzen... bei mir tuts das.
Wenns das bei dir nicht tut, dann kompilier das Ganze mit DIESEM Code und schick mir das Exe File, damit ich sehen kann obs bei mir auch zu nem Absturz kommt. :)

(hab dir meine Mail-Addy per PN geschickt)