Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:44 Der er 30 kommentarer og
1 løsning

Max antal tegn, hvorfor?

Jeg har lavet en MySQL-database med en celle der hedder indlaeg som longtext. Desværre kan jeg kun skrive ca. 50-75 tegn eller sådan noget ellers melder den fejl. Hva' slags skal cellen være før man kan skrive ALT det man vil?
Avatar billede invisibleman Nybegynder
27. april 2002 - 17:46 #1
Der må være en anden fejl.

LONGTEXT kan indeholde op til 4 GB data.

VARCHAR(n) - 1 til 255 tegn.
TEXT - 64 kb
MEDIUMTEXT - 16 mb
LONGTEXT - 4 gb
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:49 #2
Jeg bruger denne kode:

indlaeg longtext NOT NULL
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:50 #3
Og jeg kan godt skrive alt det jeg vil indtil en bestemt længde, så melder den fejl!
Avatar billede invisibleman Nybegynder
27. april 2002 - 17:50 #4
Hvilken fejl ?
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:51 #5
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Der opstod en eller flere fejl ved en OLE DB-handling på flere trin. Kontroller alle OLE DB-statusværdier. Handlingen blev ikke udført.
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:52 #6
Kan det have noget at gøre med min ODBC Driver?
Jeg kan nemlig ikke bruge Access-databaser, men nu er det også en MySQL-database.
Jeg kører IIS på Win.XP Pro. Men det er underligt at det er efter et x-antal tegn...
Avatar billede invisibleman Nybegynder
27. april 2002 - 17:52 #7
puha ... hvor meget prøver du at gemme ?
Og må vi se din kode ?
Avatar billede invisibleman Nybegynder
27. april 2002 - 17:53 #8
Bruger du TcX's MyODBC til MySQL ?
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:53 #9
Er der nogen der kender en gratis udbyder hvor jeg gratis kan lægge siden ud (det er med ASP og MySQL) så jeg kan teste det.
Friserverplads.dk virker ikke i øjeblikket med MySQL...
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:54 #10
Jeg bruger vist MySQL... Altså fra mysql.com!
Avatar billede invisibleman Nybegynder
27. april 2002 - 17:54 #11
Yeah .. men ODBC driveren .. hvordan ser din connection string ud ?
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:55 #12
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open = "Driver=MySQL; Server=localhost; Database=database; UID=Brugernavn; PWD=Kodeord;"
Avatar billede invisibleman Nybegynder
27. april 2002 - 17:56 #13
Ja det ser jo ok ud ...

Må jeg se resten af din kode? evt. hele dit tabel layout ?
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:57 #14
Har lige prøvet med phpMyAdmin, der kan den godt lægge store beskeder ind, men ikke fra min hjemmeside... Så den må være gal der...
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:58 #15
tabel-layout???
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:58 #16
Koden der lægger info'en ind ser således ud:

<%
If Request.ServerVariables("Request_Method") = "POST" Then

Set Recordset = Server.CreateObject("ADODB.Recordset")
Svar = "Select * From indlaeg"
Recordset.Open Svar, Connection, 1, 3

Recordset.AddNew
Recordset("tilhoerer") = Request("id")
Recordset("navn") = Request.Form("navn")
Recordset("indlaeg") = Request.Form("svar")
Recordset("dato") = Now()
Recordset.Update

Recordset.Close
Set Svar = Nothing
Set Recordset = Nothing

Response.Redirect Request.ServerVariables("HTTP_REFERER")

Else
Response.Redirect Request.ServerVariables("HTTP_REFERER")
End If
%>
<%
Connection.Close
Set Connection = Nothing
%>
Avatar billede brevkasserne Nybegynder
27. april 2002 - 17:59 #17
Med connection-stringen inkluderet i toppen selvfølgelig...
Avatar billede brevkasserne Nybegynder
27. april 2002 - 18:05 #18
Kan du se fejlen?
Avatar billede invisibleman Nybegynder
27. april 2002 - 18:06 #19
Ja ser du .. den måde kan man ikke gøre med MySQL .. ikke af hvad jeg ved og har prøvet.. lige et sec
Avatar billede brevkasserne Nybegynder
27. april 2002 - 18:07 #20
Ok!!!
Avatar billede invisibleman Nybegynder
27. april 2002 - 18:10 #21
Prøv det her:

<%
    Function fixSQL(sql)
        fixSQL = Replace(sql, "'", "'')
    End Function

    If Request.ServerVariables("Request_Method") = "POST" Then
        ' Lav SQL
       
        strSQL = "INSERT INTO indlaeg (tilhoerer,navn,indlaeg,dato) VALUES (" & _
        Request.Form("id") & "," & _
        "'" & fixSQL(Request.Form("navn")) & "'," & _
        "'" & fixSQL(Request.Form("svar")) & "'," & _
        "NOW())"
       
        ' Udfør
        Connection.Execute strSQL
        Response.Redirect Request.ServerVariables("HTTP_REFERER")
    Else
        Response.Redirect Request.ServerVariables("HTTP_REFERER")
    End If

    Connection.Close
    Set Connection = Nothing
%>
Avatar billede brevkasserne Nybegynder
27. april 2002 - 18:20 #22
Hva' er der galt her?

Tilfoej = "Insert Into indlaeg (tilhoerer,navn,titel,spoergsmaal) Values ("&_
Request("id") &","&_
Request.Form("navn") &","&_
Request.Form("titel") &","&_
Request.Form("spoergsmaal") &")"

Connection.Execute Tilfoej
Avatar billede invisibleman Nybegynder
27. april 2002 - 18:22 #23
Der er det galt at du *Skal* have min funktion fixSQL() med .. den erstatter ' med '' .. ellers fucker SQL'et ..
Avatar billede brevkasserne Nybegynder
27. april 2002 - 18:28 #24
Hva' er der så galt her?

Function fixSQL(sql)
fixSQL = Replace(sql, "'", "''")
End Function

Tilfoej = "Insert Into indlaeg (tilhoerer,navn,titel,spoergsmaal) Values ("&_
Request("id") &","&_
fixSQL(Request.Form("navn")) &","&_
fixSQL(Request.Form("titel")) &","&_
fixSQL(Request.Form("spoergsmaal")) &")"

Connection.Execute Tilfoej
Avatar billede brevkasserne Nybegynder
27. april 2002 - 18:28 #25
Den siger:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E57)
[TCX][MyODBC]SQLBindParameter not used for all parameters
Avatar billede invisibleman Nybegynder
27. april 2002 - 18:33 #26
Du mangler ' rundt om streng værdierne ..

sådan ser dit ud (pseudo):

INSERT .. VALUES (noget, noget andet, yadda)

men det skal vre:

INSERT .. VALYES ('noget', 'noget andet', 'yadda')
Avatar billede brevkasserne Nybegynder
27. april 2002 - 18:42 #27
Ahh, takker...
Avatar billede invisibleman Nybegynder
27. april 2002 - 18:47 #28
Så lidt :)
Avatar billede brevkasserne Nybegynder
27. april 2002 - 18:59 #29
Nå jeg bruger denne kode:

Function fixSQL(sql)
fixSQL = Replace(sql, "'", "''")
End Function

Set Tilfoej = Connection.Execute("Insert Into spoergsmaal (tilhoerer,titel,spoergsmaal,dato,navn) Values ('"&_
Request("id") &"','"&_
fixSQL(Request.Form("titel")) &"','"&_
fixSQL(Request.Form("spoergsmaal")) &"','"&_
Now() &"','"&_
fixSQL(Request.Form("navn")) &"')")

Set Tilfoej = Nothing

Vil den ikke gemme datoen og klokken, kun hvis jeg udskifter Now() med Date så gemmer den datoen, men ikke klokken. Hvordan får jeg den til at bruge Now()???
Avatar billede invisibleman Nybegynder
27. april 2002 - 19:01 #30
Du kan ikke indsætte ASP's Now() i et DATETIME felt. der skal du bruge MySQL's. ..

INSERT .. ('noget', NOW())

f.eks.
Avatar billede brevkasserne Nybegynder
27. april 2002 - 19:02 #31
Hvordan gør jeg det og hvad er MySQL's istedet for ASP's Now()???
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
Computerworld tilbyder specialiserede kurser i database-management

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