Avatar billede the_email Nybegynder
03. maj 2004 - 17:55 Der er 14 kommentarer og
1 løsning

Indsætte værdier i en MySQL-tabel fra Visual Basic

Davdav.
Jeg har set at spørgsmålt er blevet stillet før og også besvaret, men jeg kan altså ikke få det til at virke.

Jeg benytter olly's kode fra http://www.eksperten.dk/spm/293820 :

Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset

Set Conn = New ADODB.Connection
Set rs = New ADODB.Recordset
   
'Variable til parametre til oprettelse af connection
Dim strConn As String

strConn = "Driver={MySql}; Server=localhost; Option=16834; Database=Lager;"

Conn.Open strConn

Dim SQLstring As String

SQLstring = "INSERT INTO tabel... "

rs.Open SQLstring, Conn


Det skal jeg have smidt sammen med brugernavn og adgangskode til databasen, men lad os starte med at få VB til at stoppe med at lave fejl :)

Den laver allerede fejl ved: Dim Conn As ADODB.Connection
Og fjerner jeg den laver tilsvarende fejl ved: Dim rs As ADODB.Recordset

Jeg har installeret MyODBC.
Jeg kører med Visual Basic 6.0.
Håber at I kan hjælpe

/TheEmail
Avatar billede the_email Nybegynder
03. maj 2004 - 17:58 #1
Lige så i har noget at gå efter så melder den:

Compile Error:

User-defined type not defined
Avatar billede helmet Nybegynder
03. maj 2004 - 19:54 #2
Det lyder som om du endnu ikke har lavet en reference til microsoft activex data objects. Det kan du gøre i vb under project->References
Avatar billede the_email Nybegynder
04. maj 2004 - 14:38 #3
Hej helmet, nu kan jeg godt compile det med den melder at den ikke kan forbinde til MySQL'en.
Min knap har denne funktion:

Private Sub Command1_Click()

Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset

Set Conn = New ADODB.Connection
Set rs = New ADODB.Recordset
   
'Variable til parametre til oprettelse af connection
Dim objConn As String

objConn = "Driver={MySql}; Server=kraaer.com; Port=3306; Option=131072; Stmt=; Database=courier; uid=courier; pwd=passwordtilmysql;"

Conn.Open objConn

Dim SQLstring As String

SQLstring = "INSERT INTO users VALUES ('emailtest@kraaer.com', 1248, 1248, '1234', '/home/courier/kraaer.com/emailtest');"

rs.Open SQLstring, Conn, adOpenStatic, adLockReadOnly, adCmdText

End Sub


Hvis jeg vælger at kører det under VB vha. F5, og trykker Debug når den laver fejl, markere den:

Conn.Open objConn

med gult, så det er jo nok der fejlen er.

Jeg har tildelt adgang til brugeren courier i MySQL så man kan benytte den bruger fra alle "hosts"

/TheEmail
Avatar billede helmet Nybegynder
04. maj 2004 - 17:45 #4
Lyder som en fejl i enten mysql driveren eller connectionstrengen. Lidt svært og sige når du ikke skrive hvad den konkrete fejlmeddelse er?

Har selv lige prøve og åbne til mysqldatabase på mit nethotel, og det virkede først da jeg skiftede {MySql} ud med {MySQL ODBC 3.51 Driver} som var den jeg hentede fra mysql.com.
Inden udskiftning fik jeg en fejl meddelelse der hed: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified. Var det også den fejlmeddelelse du fik?
Avatar billede the_email Nybegynder
04. maj 2004 - 18:18 #5
Nu har jeg hentet ODBC 3.51 og installeret det og genstarte computeren. Min connectlinje ser således ud:

objConn = "Driver={MySQL ODBC 3.51 Driver}; Server=kraaer.com; Port=3306; Option=131072; Stmt=; Database=courier; uid=courier; pwd=passtilsql;"

Men det virker stadigvæk ikke.

Den skriver:
Run-time error '-2147467259 (80004005)':

[MySQL][ODBC 3.51 Driver]Can't connect to MySQL server on 'kraaer.com' (10061)


Jeg har prøvet at erstatte kraaer.com med den IP-adresse, men det virker alligevel ikke.
Når jeg vælger Debug siger den at det er:

Conn.Open objConn

der er fejl i.

I References under Project har jeg aktivere Microsoft ActiveX Data Objects 2.5 Library

/TheEmail
Avatar billede helmet Nybegynder
04. maj 2004 - 20:06 #6
Ok, nu er virker driveren da.

Nu er spørgsmålet og få den connectionstreng helt rigtig.
Det har jeg lidt svært med og hjælpe med. Mit umiddelbare bud er at server ikke er helt rigtigt.
Hoster du selv domænet eller har du købt et nethotel et sted?
Har selv et par domæner hostet, hvor man skal skrive bla. mysql.domæne.dk eller db.domæne.dk.
Det kunne evt. være sådan noget der mangler. Det er mit bud.
Avatar billede the_email Nybegynder
05. maj 2004 - 07:15 #7
MySQL'en kører på min egen server som står som firewall og router i mit netværk. Jeg har prøvet at erstatte kraaer.com i connectstringen med begge dens IPadresser - altså på begge netkort.
Men kraaer.com burde virke. Jeg kan ihvertfald se mit website på http://kraaer.com

/TheEmail
Avatar billede helmet Nybegynder
05. maj 2004 - 09:22 #8
Nu skriver du firewall og router, har du åbnet for adgang gennem firewallen til port 3306, og evt. port forwarded 3306 i din router?
Avatar billede the_email Nybegynder
08. maj 2004 - 13:16 #9
Hej helmet. Beklager den lange ventetid. Jeg har haft min computer med til eksamen og har derfor ikke kunne svare dig.
Lad os først få det på det rene hvordan mit netværk er sat op:

WAN-eth1-Linux-eth0-LAN

Min Linuxmaskine kører router vha. IPtables og MySQL-server. Jeg har åbnet for port 3306 på eth1, det ved vi virker da du kunne komme igennem. På eth0 er der åbnet for alt.
Derfor forstår jeg ikke at den ikke kan forbinde til den fra VB.

Kan jeg evt. prøve at installere en PHP-fortolker på min egen PC og prøve at få den til at smide noget ind i MySQL'en. Kender du sådan en?

/TheEmail
Avatar billede the_email Nybegynder
08. maj 2004 - 13:18 #10
Eller vent lige lidt.
I din kommentar 04/05-2004 17:45:49 skriver du at du får kontakt til min MySQL. Vil du ikke poste, det du skriver for at få adgang, her i spørgsmålet?
Avatar billede the_email Nybegynder
14. maj 2004 - 22:38 #11
Hej du, jeg fik en email om at du havde postet et indlæg, før Ekspertens nedbrud, men da jeg kom herind, efter Ekspertens nedbrud, var der ikke noget. Så hvis du har posted noget vil du så ikke gører det igen?

/TheEmail
Avatar billede helmet Nybegynder
14. maj 2004 - 23:30 #12
Jeg mener ikke og have skrevet at jeg er kommet i kontakt med din mysql database, det er i hvert fald ikke tilfældet. Jeg har skrevet at jeg kan komme i kontakt med dem der ligger på de nethoteller jeg bruger.

Jeg må indrømme at jeg er ved og løbe lidt tør for ideer på løsninger, så vidt jeg kan udrede at vores debat, så virker mysql driveren på pcen med visual basic korrekt. Så for mig og se er det et opsætnings problem på serveren. Det virker som om du aldrig kommer igennem til selv mysql databasen.
Avatar billede the_email Nybegynder
03. juni 2004 - 17:18 #13
Helmet. Jeg har fundet ud af at det var en fejl fra min servers side, idet at den ikke lyttede efter forbindelse på port 3306.
Tak for din hjælp med at få ODBC-driveren til at virke.
Vil du lægge et svar?
/TheEmail
Avatar billede the_email Nybegynder
03. juni 2004 - 18:09 #14
Det kan være at du også kan hjælpe her: http://www.eksperten.dk/spm/505741
/TheEmail
Avatar billede helmet Nybegynder
03. juni 2004 - 18:50 #15
Det gør jeg hermed, glad for at du fik det til og virke. Du har da vist også brugt lidt tid på det efterhånden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester