Avatar billede Slettet bruger
05. juni 2009 - 10:54 Der 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")
 
'  Upload
'  ******
  mySmartUpload.Upload
  intCount = mySmartUpload.Save("/myimages")

'  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")
 
'  Upload
'  ******
  mySmartUpload.Upload
  intCount = mySmartUpload.Save("/myimages")

'  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
%>

Mvh.
Henrik
Avatar billede softspot Forsker
05. juni 2009 - 11:02 #1
Prøv med denne connectionstring:

curDir = "Provider=SQLOLEDB.1;server=XXX;DATABASE=XXX;uid=XXX;pwd=XXX;"
Avatar billede Slettet bruger
05. juni 2009 - 11:58 #2
Skriver desværre det samme...

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/u/uploadbillede1.asp, line 106
Avatar billede softspot Forsker
05. juni 2009 - 12:09 #3
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?
Avatar billede softspot Forsker
05. juni 2009 - 12:12 #4
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 :-)).
Avatar billede 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


' SQL sætning opbygges

strSQL = "Insert into comment (beskrivelse,filnavn,klik) values('" & Request.Form("beskrivelse") & "','" & Request.Form("filnavn") & "','" & Request.Form("klik") & "')"


' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

response.write "Din kommentar er tilføjet"

else
response.write "Din kommentar blev ikke tilføjet, du valgte forkert i spam check!"

end if


%>
Avatar billede softspot Forsker
05. juni 2009 - 12:34 #6
Argh! Prøv lige at udskifte denne linie:

  oConn.Open strSQL, curDir,1

med denne linie:

  oConn.Open curDir

Der skal jo ikke angives SQL når der oprettes forbindelse til databasen :-)
Avatar billede 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. :-)

Så smid endelig svar...

Mvh.
Henrik
Avatar billede softspot Forsker
05. juni 2009 - 13:18 #8
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... :-)
Avatar billede 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.. :-)
Avatar billede softspot Forsker
05. juni 2009 - 19:57 #10
Tak for point :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB