hur skapar man/ändrar tabeller i en access-db direkt från en asp-sida
skapa tabeller via asp-sida
13 svar · 377 visningar · startad av WebbisNet
<%CREATE TABLE test ADD kolumn1 (25)%> funkar inte så bra
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provder=Microsoft.JET.OLEDB.4.0;...osv..."
Connect.Execute("CREATE TABLE test ADD kolumn1 (25)")
%>
får syntaxfel med objConn.Execute("CREATE TABLE test ADD kolumn1 (25)")
Connect.Execute("CREATE TABLE [test] ([kolumn1] TEXT(25) NOT NULL)")
Står lite om det här:
http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=43664&highlight=Syntaxfel+i+CREATE+TABLEinstruktion
sql = "UPDATE TABLE test SET kolumn1='hej'"
response.write("tabellen är uppdaterad")
var är syntaxfelet?
Vad menar du nu? Har du försökt uppdatera den skapade tabellen test och kolumn1 med hej eller?
Ledsen tog ett tag innan jag kopplade.
Anledningen är att du inte kan uppdatera en rad där du inte tidigare har data. Du måste istället använda INSERT:
strSQL = "Insert Into test(kolumn1) Values('hej');"
Om du instället vill göra en update så måste du ha ett unikt värde att gå efter:
strSQL = "UPDATE test SET kolumn1='hej' WHERE ID=1"
WebbisNet skrev:
sql = "UPDATE TABLE test SET kolumn1='hej'"
response.write("tabellen är uppdaterad")var är syntaxfelet?
Det finns inget syntaxfel i den koden. Får du något felmeddelande?
SannyW skrev:
Anledningen är att du inte kan uppdatera en rad där du inte tidigare har data.
Jodå, det går alldeles utmärkt. Det händer visserligen ingenting eftersom det inte finns någon data att uppdatera, men det är fullt tillåtet att göra en update som inte ändrar någon post.
Syntaxen beror på att TABLE är med. Och det är sant som du säger Guffa att det funkar.
Jag blir lite frågevis, har man något användningsområde att skicka en Update som inte ändrar någon post. Om så i vilket sammanhang?
/r
Kom på lite hur man kunde ev. kan använda det, dock lade jag till Where med id=0:
strSQL = "UPDATE test SET kolumn1='hej' WHERE ID=0"
Connect.Execute strSQL,rows,128
if rows = 0 then
strSQL = "Insert Into test(kolumn1) Values('hej1');"
Connect.Execute strSQL,,128
end if
om jag använder
strSQL = "UPDATE test SET kolumn1='hej' WHERE ID=0"
objConn.Execute strSQL,rows,128
if rows = 0 then
strSQL = "Insert Into test(kolumn1) Values('hej1');"
objConn.Execute strSQL,,128
end if
så får jag
Fältet 'test.kolumn2' kan inte innehålla värdet Null eftersom egenskapen Required för fältet har angetts till True. Ange ett värde i detta fält.
kolumn2 är inte tom, den innehåller siffran 3
Anledningen till att jag vill veta allt det här är att jag vill få ihop en lista med sql så att jag kan sköta databasen till mitt community mestadels från asp-sidor då jag har märkt att tabeller lätt skadas när jag skickar tillbaka databasen efter at ha modifierat den och då går den inte att använda utan får ladda upp äldre versioner
HEJ!
WebbisNet skrev:
Anledningen till att jag vill veta allt det här är att jag vill få ihop en lista med sql så att jag kan sköta databasen till mitt community mestadels från asp-sidor då jag har märkt att tabeller lätt skadas när jag skickar tillbaka databasen efter at ha modifierat den och då går den inte att använda utan får ladda upp äldre versioner
Det kan finnas en bot för detta, när jag ändrat i Accessdatabaser kör jag alltid Verktyg-Databasverktyg-Komprimera och reparera databas.
Då blir databasen mindre, vilket är bra! Gissar att onödiga objekt plockas bort också. Prova detta.
Tänk också på att inte klicka själv på webben, för då får man fel, och databasen måste läggas upp igen.
(Varför inte detta händer om vanliga besökare klickar får någon gärna förklara!)


