webForumDet fria alternativet

skapa tabeller via asp-sida

ASP

13 svar · 377 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

hur skapar man/ändrar tabeller i en access-db direkt från en asp-sida

Medlem sedan dec. 20003 563 inlägg
#2

M.h.a. sql-syntaxen för just detta ändamål.

create table ...
alter table ...
Medlem sedan feb. 20032 027 inlägg
#3

<%CREATE TABLE test ADD kolumn1 (25)%> funkar inte så bra

Medlem sedan mars 20023 561 inlägg
#4
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provder=Microsoft.JET.OLEDB.4.0;...osv..."
Connect.Execute("CREATE TABLE test ADD kolumn1 (25)")
%>
Medlem sedan feb. 20032 027 inlägg
#5

får syntaxfel med objConn.Execute("CREATE TABLE test ADD kolumn1 (25)")

Medlem sedan jan. 2003438 inlägg
#6
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

Medlem sedan feb. 20032 027 inlägg
#7

sql = "UPDATE TABLE test SET kolumn1='hej'"
response.write("tabellen är uppdaterad")

var är syntaxfelet?

Medlem sedan jan. 2003438 inlägg
#8

Vad menar du nu? Har du försökt uppdatera den skapade tabellen test och kolumn1 med hej eller?

Medlem sedan jan. 2003438 inlägg
#9

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"
Medlem sedan juni 2004533 inlägg
#10

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.

Medlem sedan jan. 2003438 inlägg
#11

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
Medlem sedan feb. 20032 027 inlägg
#12

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

Medlem sedan juni 200032 967 inlägg
#13

kolumn2 är inte tom, den innehåller siffran 3

Inte om det är INSERT-frågan som körs.

Medlem sedan apr. 20031 660 inlägg
#14

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!)

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)