05. juni 2009 - 10:54Der er
9 kommentarer og 1 løsning
SQL fejl (før access database)
Jeg skal have uploaded en fil til min server og samtidig tilføjet en beskrivelse af filen i min database.
Før kørte jeg access og har nu skiftet til SQL Ekspress. Jeg kan fint udskrive, men når jeg prøver at opdaterer min database som her, så får jeg fejlen:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
uploadbillede1.asp, line 106 (Den er linjen hvor den connecter til SQL databasen)
Her er min kode efter jeg har prøvet at ændre det til SQL: (Nederst kommer den som den var med access databasen) Har lige ændret server, kode og pass - men det er som det skal være. Håber der er nogen der kan hjælpe mig. :-)
<% ' Variables ' ********* Dim mySmartUpload Dim file1 Dim file2 Dim oConn Dim oRs Dim intCount intCount=0 Session.LCID = 1030 ' Object creation ' *************** Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Connect to the DB ' ***************** Set oConn = Server.CreateObject("ADODB.Connection") curDir = "driver={SQL Server};server=XXX;DATABASE=XXX;uid=XXX;pwd=XXX;" oConn.Open strSQL, curDir,1
' Open a recordset ' ****************
Set oRs = Server.CreateObject("ADODB.recordset") strSQL = "SELECT * FROM seneste" Set oRs.ActiveConnection = oConn oRs.Source = strSQL oRs.LockType = 3 oRs.Open
' Add the current file in a DB field ' ********************************** oRs.AddNew oRs("pic") = mySmartUpload.Files.Item("File1").FileName oRs("billedekategori") = mySmartUpload.form("kategori") oRs("beskrivelse") = mySmartUpload.form("overskrift") oRs("powerpoint") = "hyggestedet" oRs("visnyhed") = 3
oRs.Update intCount = intCount + 1
' Display the number of files uploaded ' ************************************ Response.Write(intCount & " file(s) uploaded.<BR>")
' Destruction ' *********** oRs.Close oConn.Close Set oRs = Nothing Set oConn = Nothing %>
HER ER DEN SOM ACCESS VERSION HVOR DET VIRKER FINT!:
<% ' Variables ' ********* Dim mySmartUpload Dim file1 Dim file2 Dim oConn Dim oRs Dim intCount intCount=0 Session.LCID = 1030 ' Object creation ' *************** Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' Connect to the DB ' ***************** Set oConn = Server.CreateObject("ADODB.Connection") curDir = Server.MapPath("\db\mydb.mdb") oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
' Open a recordset ' **************** strSQL = "SELECT * FROM seneste"
Set oRs = Server.CreateObject("ADODB.recordset") Set oRs.ActiveConnection = oConn oRs.Source = strSQL oRs.LockType = 3 oRs.Open
' Add the current file in a DB field ' ********************************** oRs.AddNew oRs("pic") = mySmartUpload.Files.Item("File1").FileName oRs("billedekategori") = mySmartUpload.form("kategori") oRs("beskrivelse") = mySmartUpload.form("overskrift") oRs("powerpoint") = "hyggestedet" oRs("visnyhed") = 3
oRs.Update intCount = intCount + 1
' Display the number of files uploaded ' ************************************ Response.Write(intCount & " file(s) uploaded.<BR>")
' Destruction ' *********** oRs.Close oConn.Close Set oRs = Nothing Set oConn = Nothing %>
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Hvad mener du helt præcis når du skriver "Jeg kan fint udskrive,..."? Betyder det at du godt kan læse data fra SQL Server Express databasen, men ikke skrive til den, eller noget andet?
Det lyder lidt som om du ikke bruger helt samme connectionstring til de to scenarier. Alternativt at den bruger du logger på SQL Serveren med, ikke har rettigheder til at opdatere (men så synes jeg nu beskeden burde lyde anderledes, for den du får ville ikke være logisk ifht. det problem :-)).
Synes godt om
Slettet bruger
05. juni 2009 - 12:24#5
Yes, kan fint udskrive, altså læse data fra SQL databasen.. :-)
Kan godt skrive i databasen for har nogle andre scripts hvor jeg gør det, de er bare anderledes bygget op...
Kan lige vise dig et eksempel her: (Et script hvor man smider en kommentar til et billede/filmklip).
<%
if Request.Form("computer") = "name" Then
' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = DSN & "driver={SQL Server};server=XXX;DATABASE=XXX;uid=XXX;pwd=XXX;" Conn.Open DSN
Der skal jo ikke angives SQL når der oprettes forbindelse til databasen :-)
Synes godt om
Slettet bruger
05. juni 2009 - 13:09#7
YES! :-) Der var aben begravet... hehe....
Så siger jeg 1000 tak for hjælpen.... Det er en hård tur når man skal have ændret alt fra Access til SQL database.. Puha.. Bøvler lige med nogle SQL sætninger der heller ikke virker mere efter jeg er skiftet..
Men nu kan jeg i det mindste uploade igen, takket være dig. :-)
Ja, det kan jeg forestille mig. Det kan være du skal sørge for at centralisere din forbindelsesoplysninger, så du ikke skal kæmpe for meget med copypaste connectionoplysninger? Includes er én måde Windows Script Components er en anden. Jeg er klar over at WSC er lidt overvældende, hvis man ikke kender det i forvejen, men jeg er sikker på at du vil blive glad for det i længden, men include-modellen vil under alle omstændigheder gøre din kode mere robust og vedligeholdelsesvenlig...
Velbekomme i øvrigt... :-)
Synes godt om
Slettet bruger
05. juni 2009 - 17:49#9
Det har du nok ret i.... Det tror jeg også lige jeg vil kigge på næste gang jeg laver re-design.. Nu skal det bare virke så jeg kan få opdateret og holde siden kørende.. :-)
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.