22. august 2001 - 09:57Der er
10 kommentarer og 2 løsninger
ok jeg gir op...lav det for mig! :)
Jeg skal ha lavet et script der hvert år går ind og laver en ny tabel i en database og kalder den et navn + year(now)... Jeg har prøvet lidt af hvert...men den kommer med en masse fejl meldinger :/
<% ThisYear = year(now)
If ThisYear > 2000 Then
DIM strSQL strSQL = \"CREATE TABLE Birthdays& ThisYear (\" &_ \"id Counter Primary Key, \" &_ \"first_name text(50) NOT NULL, \" &_ \"last_name text(50) NOT NULL, \" &_ \"date_of_birth text(50) NOT NULL\" &_ \");\"
DIM Conn SET Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"/statistik.mdb\") Conn.Execute (strSQL)
End If %>
Fejl: Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e14\'
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i CREATE TABLE-sætningen.
/test.asp, linje 17
Det er hvad jeg har sat og leget med...ved godt det ikke kommer til at virke...men bare for lige at se om det kunne lade sig gøre :P
Håber det er nok point...har ingen ide om hvor svært det er eller noget :)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Den simpleste måde er at lave en forspørgsel fra tabellen og så fange fejlen. Noget i stilen med. (Jeg er vant til at skrive VB så der er måske en lille forskel i hvordan fejlhåndtering laves)
on error resume next Conn.Execute (\"select top 1 * from Birthdays\" & ThisYear) if err.mnumber <> 0 then response.write \"Findes ikke\" end if on error goto 0
uhmm...nu er jeg helt lost...? Hvor vil du sætte det ind... Det jeg mener er at den skal tjekke om der er en tabel der hedder Birthdays2001 feks...hvis den findes skal den bare lade den være... Hvis den ikke findes skal den så oprettes...
Den simpleste måde er at ændre din kode til følgende der vil fange den fejlt du ellers ville få hvis du prøver at oprette den samme tabel to gange.
<% ThisYear = year(now)
If ThisYear > 2000 Then
DIM strSQL strSQL = \"CREATE TABLE Birthdays\" & ThisYear & \" (\" &_ \"id Counter Primary Key, \" &_ \"first_name text(50) NOT NULL, \" &_ \"last_name text(50) NOT NULL, \" &_ \"date_of_birth text(50) NOT NULL\" &_ \");\"
DIM Conn SET Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"/statistik.mdb\") \'--- on error resume next \'--- Conn.Execute (strSQL) \'--- on error goto 0 \'--- End If %>
heh.. ehmm...hele problemet ligger i at jeg laver en statistik over nogle sider... Så nå vi kommer til år 2002 skal den automatisk lave en ny tabel der hedder 2002... Slet ikke noget med fødselsdage eller noget :P Det er bare et eksempel fra et senere spørgsmål jeg havde....
OK. Jeg havde også undret mig lidt over at du ville gemme de samme personers fødselsdage i forskellige år, da man jo må gå udfra at de er det samme fra år til år;).
Hvis du gemmer statistisk data så kan dine tabeller godt blive meget store og jo større dine tabeller bliver jo langsommere bliver dine index\'er, så det er ikke en helt dårlig ide at lave flere tabeller (Måske en pr. måned).
hmm...det skal jeg nok få til at virke... tak begge 2 for jeres tid...:P
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.