Kan någon tipsa mig om hur jag kan ladda hem innehållet i en accessdatabas på min webserver till en likadan databas på den Detta script genererar en kommaseparerad fil med allt data från en tabellLadda hem databas
lokala datorn där databasen bearbetas vidare med program i VB.Sv: Ladda hem databas
<%
rs = con.execute("SELECT * FROM " & request.querystring("tablename"))
WHILE NOT rs.EOF
res = ""
for a = 1 to rs.fields.count
res = res & "'" & rs(a) & "',"
next
res = left(res,len(res)-1)
response.write res & vbCrLf
rs.MoveNext
WEND
%>
på din dator får du skriva ett program som tar allt data från filen och stoppar in det i din databas. notera att tabellerna måste vara identiska.
slingan som ska göra det kan se ut på följande sett (använder en winsock control).
winsock1.connect "www.minwebserver.com", 80
while winsock1.state <> sckConnected
doevents
wend
winsock1.senddata "GET /admin/aspsida.asp?table=entabell" & vbcrlf
i Winsock1_DataArrival:
dim tx1 as string
static tmpvar as string
Winsock1.GetData tx1
tmpvar = tmpvar & tx1
'vi har fått en rad, stoppa in den i databasen
if instr(1,tmpvar,vbcrlf) <> 0 then
dim sql as string
sql = "INSERT INTO entabell VALUES(" & tmpvar & ")"
con.execute sql
end if
jepp jepp.. Notera att jag har inte testat någon kod, utan jag skrev den direkt från minnet. I asp sidan lär du naturligtvis öppna en databaskoppling som heter "con" innan du kör mitt exempel, annars lär det inte fungera. Om du har tecken som " och ' i några av fälten så lär du hantera det innan du skickar datat till ASP sidan, alternativt i ditt program.
Winsock1_DataArrival kan bugga om exempelvis två rader kommer i samma ippaket, hantera detta eller be om hjälp om du inte vet hur.