Avatar billede jacob-bait.dk Nybegynder
20. maj 2003 - 17:18 Der er 5 kommentarer og
1 løsning

Problem med at sende dato fra form til MySQL

Hej - dette haster!!!
Jeg har en side liggende på en MS IIS maskine, der connecter til en MySQLdb på en unixmaskine.

Jeg connecter som følger:

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={MySql};SERVER=********; DATABASE=data; UID=*****; PWD=*****"


Problemet opstår når jeg fra en form skal gemme data i min db.

F.eks. sådan her:

rs.Open "SELECT * FROM db",Connect,1,3
rs.AddNew
rs("navn") = Request.Form("navn")
rs.Update
rs.Close

Hvis jeg i stedet for Request.Form("navn") blot skriver "test" eller lignende er der ingen problemer.

Her kommer the triggy part!!!!
Nogle gange, hvis jeg kun sender ord gennem formen som "test", på op til en 4-5 bogstaver går den fint igennem og gemmes i databasen.
Skriver jeg længere ord får jeg fejl! (Ingen definérbar fejl, blot "Siden kan ikke vises")

Jeg håber virkelig der er nogen der kan hjælpe mig med dette problem.


PS: Jeg kan måske lige sige at jeg både har prøvet at sætte mit felt "navn" i MySqldb'en til et alm. text-felt og et varchar på 250 tegn. Ingen af delene virker.


På forhånd tak for hjælpen.

Med venilig hilsen
Jacob
Avatar billede eagleeye Praktikant
20. maj 2003 - 17:32 #1
Ang "siden kan ikke vises" Prøv at slå denne fra i IE, så skulle du gerne få en bedre fejl kode/beskrivelse:

funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"


Der er fejl i rs.AddNew med nogle mySQL drivers. Når man hendter data ind i recordsetet vha SQL så ligger den en max-længde ind for hver fejl så recordsetet ved hvor lang en streng man kan ligge i en kolonne. Fejlen var så at den tog længden på det tekst som var i en kolonne og ikke den max længde man har defineret for kolonnen. Så hvis du har lagt "test" i en gang vil den se det som max længde som 4 eller 5, og du kan så kun ligge noget i kolonnen navn som er minde end 5 karakter.
Avatar billede eagleeye Praktikant
20. maj 2003 - 17:36 #2
Prøv at bruge SQL til at indsætte med..:

Så dette:

rs.Open "SELECT * FROM db",Connect,1,3
rs.AddNew
rs("navn") = Request.Form("navn")
rs.Update
rs.Close

Bliver til:

SQL = "INSERT INTO db (navn) VALUES ("
SQL = SQL & "'" & Replace(Request.Form("navn"),"'","''") & "'"
SQL = SQL & ")"
Connect.Execute(SQL)
Avatar billede eagleeye Praktikant
20. maj 2003 - 17:37 #3
Eller lav din SQL som du har nu om så den vælger en recordset som ikke findes:


rs.Open "SELECT * FROM db WHERE ID=0",Connect,1,3
rs.AddNew
rs("navn") = Request.Form("navn")
rs.Update
rs.Close
Avatar billede eagleeye Praktikant
20. maj 2003 - 17:38 #4
Forsætelse af (20/05-2003 17:37:09)
og dermed skulle den tvinges til at tage den rigtige max længde da recordsetet vil blive tomt.
Avatar billede jacob-bait.dk Nybegynder
20. maj 2003 - 17:57 #5
Hej.
Dit første svar var rigtigt.
Jeg tømte min db og oprettede en ny kolonne hvor alle felter havde værdien "yyyyyyyyyyyyyyyyyyyyyyyyyyyyy" og forsøgte mig så derefter igen med min form - det virkede!!!

Jeg må indrømme jeg var lidt chokket. Ikke lige noget jeg har set før... Men tusind tak!

(Jeg har også prøvet dine andre forslag men uden succes)


Jeg har nu talt med min host og vi blev enige om at de ville forsøge at få opdateret de omtalte drivere så vi kan få det til at virke.
(Jeg går ud fra at de drivere der skal opdateres er på iis serveren?)

Opret et svar så jeg kan godkende det.

Tusind tak for (den meget hurtige) hjælp



~Jacob
Avatar billede eagleeye Praktikant
20. maj 2003 - 18:01 #6
;) her et svar.

(Jeg går ud fra at de drivere der skal opdateres er på iis serveren?)
Ja det er på IIS serveren der skal opdateres.
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