webForumDet fria alternativet

Lägga till en ny post i FoxPro databas

ASP

4 svar · 725 visningar · startad av Snakes

Medlem sedan okt. 2004392 inlägg
Frågan#1

Jag lyckas inte lägga in en ny post i en FoxPro databas.

Jag har testat både med RS.Update och "INSERT INTO", se felmeddelande och kod nedanför.

--------------------------------------------------------
Microsoft OLE DB Provider for Visual FoxPro fel '80004005'

Data type mismatch.

/readxml.asp, rad 6

Set Conn = CreateObject("ADODB.Connection")Conn.Open "Provider=vfpoledb.1;Data Source=" & Path & ";Collating Sequence=general"

cusDataSQL = "INSERT INTO GUEST ([SIGN],[UPDATED]) " & _
"VALUES ('" & cusDataSIGN & "',#" & cusDataUPDATED & "#)"

Set cusDataRS = Conn.Execute(cusDataSQL) [red]' Rad 6[/red]
cusDataRS.Close

Utskriven SQL: INSERT INTO GUEST ([SIGN],[UPDATED]) VALUES ('PRT',#2008-07-22#)

--------------------------------------------------------
ADODB.Recordset fel '800a0cb3'

Aktuellt Recordset kan inte uppdateras. Det kan bero på en begränsning av providern eller den valda låstypen.

/readxml2.asp, rad 7

Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Provider=vfpoledb.1;Data Source=" & Path & ";Collating Sequence=general"

Set resNoteRS = Server.CreateObject("ADODB.Recordset")
resNoteRS.Open "SELECT TOP 1 * FROM GUEST ORDER BY N_NO", Conn, 2, 3 [red]' Testat med 3, 3 - Samma fel[/red]

resNoteRS.AddNew [red]' Rad 7[/red]
resNoteRS("SIGN") = "PRT"
resNoteRS("UPDATED") = dateNow
resNoteRS.Update
resNoteRS.Close

--------------------------------------------------------

SIGN är Charactar fält
UPDATED är Datum fält

Notera: Foxpro DBF databas, kanske dBase. Har inte en fpt fil, bara en cdx.

EDIT:

Det kan kanske vara relevant att detta fungerar:

Set getNoteID = Conn.Execute("SELECT TOP 1 N_NO FROM GUEST ORDER BY N_NO DESC")
resN_NO = getNoteID(0)
getNoteID.Close
Medlem sedan nov. 20014 054 inlägg
#2

Testa att använda '" & cusDataUPDATED & "' istället för #" & cusDataUPDATED & "# kan vara det som felar eftersom den klagar på datatypen.

Sen pröva med 1, 3 .. alltså adOpenKeyset och adLockOptimistic.

Bara en chansning här alltså..

Medlem sedan okt. 2004392 inlägg
#3

Tack för svaret!

Testat med ' ' - fungerar ej, samma fel.

Testade nyss med 1, 3 - fungerar ej, samma fel.

Medlem sedan okt. 2004392 inlägg
#4

Löste det.
Använd "INSERT INTO" metoden. Man ska omringa datum med {} istället för ##. Då funkar det.

Medlem sedan nov. 20014 054 inlägg
#5

Vad bra! :)

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)