• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

ASP - DB Problem

S

signal

Guest
hiho ;) hab ma wieder nen datenbank problem.. also schon mal vorneweg.. der conn string und die variabeln funzeln ;)..
hier ma den code ;D

<!--#include file="fun_texte_conf.asp"-->
<% if request.form("pw") = password then
set rs=server.CreateObject("ADODB.RecordSet")
set my_conn=server.CreateObject("ADODB.Connection")
my_conn.Open ConnString
rs.Open "SELECT * FROM fun_texte ORDER BY id",my_conn,1,1
if rs.EOF or rs.BOF then
next_id=0
else
rs.MoveLast
next_id=rs("id")
next_id=next_id+1
end if
rs.Close

if Request.Form("name") <> "" and Request.Form("name") <> " " then
name=Request.Form("name")
else
name="unbekannt"
end if

if Request.Form("text") <> "" and Request.Form("text") <> " " then
text=Request.Form("text")
else
response.write("Es ist kein text angegeben")
response.end()
end if


strSql="INSERT INTO fun_texte (name,text,id) VALUES ('"
strSql=strSql & name & "','"
strSql=strSql & text & "','"
strSql=strSql & next_id & "')"
my_conn.execute strSql
my_conn.Close
response.write "<center><font face='verdana' size='2'> Eintrag Erfolgreich hinzugefügt! </font></center>"
end if
set rs=nothing
set my_conn=nothing
%>


da bringter den fehler:
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in INSERT INTO statement.
/wof/fun_texte_add.asp, line 34



dange :D
 
hab mir jetzt dein script nicht angeguckt und hab auch keine lust bis zur zeile 34 durchzuzählen
(welche zeile ist denn das?),aber sowas hatt ich auch mal obwohl absolut kein fehler vorlag.
hab ich die tabelle in der db gelöscht und neu erstellt und dann gings.
weiß der geier warum. also entweder du markierst mir die 34. zeile
oder probierst es mal mit tabelle löschen und neu erstellen :D
mfg, riddler



übrigens ist das:

strSql="INSERT INTO fun_texte (name,text,id) VALUES ('"
strSql=strSql & name & "','"
strSql=strSql & text & "','"
strSql=strSql & next_id & "')"

die abstruseste idee nen sql-befehl zu erstellen, die mir bisher untergekommen ist :D
nicht das ichs mir auf fehler angeguckt hätte, aber warum setzt du den befehl nicht als ganzes sondern zerhackstückelst den???
 
Zuletzt bearbeitet:
my_conn.execute strSql


dat is das ding ^^ :p .. und neu erstellen geht nich :( *plönk*
 
probier mal das:

strSql = "INSERT INTO [fun_texte] (name,text,id) VALUES ('" & name & "','" & text & "','" & next_id & "')"


wobei: warum setzt du die id?
hast du die nicht auf automatisch gesetzt?
 
mööp mööp :((

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in INSERT INTO statement.
/wof/fun_texte_add.asp, line 31


und das is nach adam riese -> strSql = "INSERT INTO [fun_texte] (name,text,id) VALUES ('" & name & "','" & text & "','" & next_id & "')"
 
nur mal so ne idee: (weiß der geier obs hilft)

strSql = "INSERT INTO [fun_texte] (name,text,id) VALUES ('" & name & "','" & text & "'," & next_id & ")"

aber trotzdem: warum setzt du die id?hast du die nicht auf automatisch?
 
jo hilft ca. gleichviel wie n'geier..*g* .. hmm.. kA wegen der id ;)
ich bastel glaubich mal die db neu vielleicht hilfts ja wirklich (1mal gings schon net :()

übrigens wenn du nen DB programm kennst wie z.b. visdata (das geht leider net in win2k bei mir) könnte mans ja auch mal posten :D
 
hmm.. jetzt gehts irgendwie.. kA wieso :/
naja nochma ne andere frage ;)
wenn ich nen grösseren text in einem tabellen feld haben will.. muss ich ja die size ändern.. aber das geht irgendwie nich :( .. der furzt immer ab wenn ich das so auf 1000 ändere.. kann ich dort irgendwie nen platzhalter für unendlich viel eingeben? oder irgend ne andere lösung?.. riddler?..*g*
 
ich ma wieder

was haste denn für ne db?
setz den felddatentyp für das entsprechene feld auf "memo"
(ich geh mal davon aus,daß du den momentan auf "text" o.ä. hast)

mfg, riddler
 
ok danke :D das wichtigste funzelt jetzt ;) .. aber wenn im text das zeichen ' vorkommt bringt es nen fehler wegem einfügen :( kann man das irgendwie ändern?

strSql="INSERT INTO texte (linkname,beschreibung,id) VALUES ('"
strSql=strSql & name & "','"
strSql=strSql & text & "','"
strSql=strSql & next_id & "')"
my_conn.Execute strSql
 
yupp

schreib das:

variable1 = Replace(variable1,"'","''")

für alle variablen in denen ein ' vorkommen kann,
bevor du sie in die DB einfügst.

das erstezt alle ' durch '' und das richtet dann keinen schaden mehr an...
mfg, riddler
 
hm dangö :) ich hab nochma ne frage ;D .. wo finde ich wohl irgend nen text oder beispiel dazu das z.b. nur 10 eiträge pro seite angezeigt werden?.. naja.. ausser jemand hat grad eins.. postet das doch ;) dangö :D
 
beispiel aus meinem guestbook

<%
set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM [guestbook] ORDER BY [ID] DESC"
rs.Open sql, my_conn, 3, 3

entries = rs.RecordCount
shownEntries = 0
lastPage = entries / 6
If lastPage > Int(lastPage) Then
lastPage = Int(lastPage) + 1
End If
actualPage=Int(Request.QueryString("page"))
If actualpage < 1 Then
actualpage = 1
End If
If actualpage > lastpage Then
actualpage = lastpage
End If

Do While (shownEntries<>6) AND Not rs.EOF
If (actualPage > 1) AND (shownEntries=0) Then
For i = 1 To (6 * (actualPage-1))
If Not rs.EOF Then
rs.MoveNext
End If
Next
End IF
%>

Hier das gästebuch anzeige-script


<%
shownEntries = shownEntries + 1
rs.MoveNext
loop
rs.Close
set rs = Nothing
%>

<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="45%" align="right">
<%
If actualPage<>1 Then
%>
<A href="guestbook.asp?page=<%=actualPage-1%>"><font color="black">Vorherige</font></a>
<%
Else
Response.Write(" ")
End If
%>
</td>
<td align="center" width="10%">
<%=actualPage%>/<%=lastPage%>
</td>
<td width="45%">
<%If actualPage < lastPage Then
%>
<A href="guestbook.asp?page=<%=(actualPage+1)%>"><font color="black">Nächste</font></a>
<%
ELSE
Response.Write(" ")
End If
%>
</td>
</tr>
</table>



zeigt immer 6 einträe an,
willst du was anderes alle "6" durch die gewünschte menge ersetzten.
hoffe hab beim copy+paste nichts vergeßen
mfg, riddler
 
Zurück
Oben