Avatar billede _et Praktikant
05. juli 2002 - 20:38 Der er 19 kommentarer og
1 løsning

ASP og SQL2000 database

Jeg har en SQL2000 server.

Jeg vil gerne have et eller flere eksempler på hvor gan jeg kommer i kontakt med min server

Hvis nogen har nogle eksempler eller links til dem, så vil jeg være glad.

Det må gerne være eksempler til Northwind databasen.

Jeg har aldrig rodet med SQL 2000 før så det skal være til at forstå. Jeg har en smule erfaring med access db
Avatar billede tmceu Praktikant
05. juli 2002 - 20:50 #1
Dette eksempel udskriver alle kategori navne fra Northwind's Categories tabel:

dim objConn, objRS

set objConn = server.CreateObject("ADODB.Connection")
set objRS = Server.CreateObject("ADODB.Recordset")

objConn.ConnectionString = "Provider=sqloledb;User ID=bruger;Password=password;Initial Catalog=Northwind;Data Source=servernavn el. ip adresse"

objConn.Open

Set objRS = objConn.Execute("SELECT * FROM Categories")

If Not objRS.EOF Then

Do Until objRS.EOF

    Response.Write objRS("CategoryName") & "<BR>"

    objRS.MoveNext
Loop


If objRS.State = 1 Then objRS.Close
Set objRS = Nothing

If objConn.State = 1 Then objConn.Close
Set objConn = Nothing
Avatar billede tmceu Praktikant
05. juli 2002 - 20:52 #2
Sorry, der manglede en End If (og jeg smed også lige en else på)

dim objConn, objRS

set objConn = server.CreateObject("ADODB.Connection")
set objRS = Server.CreateObject("ADODB.Recordset")

objConn.ConnectionString = "Provider=sqloledb;User ID=bruger;Password=password;Initial Catalog=Northwind;Data Source=servernavn el. ip adresse"

objConn.Open

Set objRS = objConn.Execute("SELECT * FROM Categories")

If Not objRS.EOF Then

Do Until objRS.EOF

    Response.Write objRS("CategoryName") & "<BR>"

    objRS.MoveNext
Loop

Else
Response.Write "Ingen data"
End If

If objRS.State = 1 Then objRS.Close
Set objRS = Nothing

If objConn.State = 1 Then objConn.Close
Set objConn = Nothing
Avatar billede _et Praktikant
05. juli 2002 - 21:01 #3
Jeg har kopieret dit script og rettet "id" og "pass" men jeg får en fejl 500 - HTTP 500 - Internal server error
Hvorfor??

Skal jeg lave et System DSN eller hva?? :-)
Avatar billede tmceu Praktikant
05. juli 2002 - 21:04 #4
Generelt kan man sige, at udover connectionstring er der kun få SQL syntax forskelle mellem Access og SQL Server 2000. Få er naturligvis relativt, men på de basale funktioner er der næsten ingen forskel.

En af dem som mange dog har problemer med er funktionen for dags dato.

Bruger du eks. Date() eller Now() funktionerne i Access, hedder den for begges vedkommende getdate() på SQL Server. Og så skal du være opmærksom på, at SQL Server's dato/tid felter, altid indeholder både dato og tid.
Avatar billede tmceu Praktikant
05. juli 2002 - 21:07 #5
For det første er fejl 500 en generel fejlmeddelelse. Du kan få en mere detaljeret fejlbeskrivelse, hvis du i IE ændrer følgende: Tools -> Internet Options -> Advanced -> Show Friendly HTTP Error Messages (denne slås fra).

De typiske fejl:

1. Du har glemt at ændre Data Source i ovenstående til din server
2. Du har ikke slået Windows And SQL Server authentication til
3. Du har en firewall som forhindrer forbindelsen mellem IIS og SQL Server
Avatar billede tmceu Praktikant
05. juli 2002 - 21:09 #6
Og nej, du behøver ikke at lave en DSN. Faktisk vil jeg råde dig til aldrig at gøre det, da det gør dine scripts maskin afhængige, dvs. at du ikke uden viderekan flytte dsine scripts.
Avatar billede _et Praktikant
05. juli 2002 - 21:13 #7
Mit problem er at komme i kontakt men serveren.

Jeg ved ikke havd jeg skal skrive i objConn.ConnectionString = "??"

Jeg har før brugt Access med et ODBC DSN til den pågældene .mdb fil, og så har jeg også brugt denne måde :
conn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("DB-fil.mdb")

Sådan som jeg "ser" sql server så sender den databaserne "ud" på nettet og så skal man bare fange den, og det er der jeg har problemet.
Avatar billede _et Praktikant
05. juli 2002 - 21:17 #8
Her er fejlen og scriptet som det ser ud her:
Microsoft VBScript compilation error '800a03f6'

Expected 'End'

/sql.asp, line 27
-------
<%
dim objConn, objRS

set objConn = server.CreateObject("ADODB.Connection")
set objRS = Server.CreateObject("ADODB.Recordset")

objConn.ConnectionString = "Provider=sqloledb;User ID=sa;Password=****;Initial Catalog=Northwind;Data Source=servernavn el. ip adresse"

objConn.Open

Set objRS = objConn.Execute("SELECT * FROM Categories")

If Not objRS.EOF Then

Do Until objRS.EOF

    Response.Write objRS("CategoryName") & "<BR>"

    objRS.MoveNext
Loop


If objRS.State = 1 Then objRS.Close
Set objRS = Nothing

If objConn.State = 1 Then objConn.Close
Set objConn = Nothing
%>
Avatar billede _et Praktikant
05. juli 2002 - 21:20 #9
Jeg vil jo sige det er fordi den ikke kan finde ud af hvor du slutter dine if sætninger
Avatar billede tmceu Praktikant
05. juli 2002 - 21:30 #10
Du så altså ikke min kommentar om at jeg havde glemt en end if :-)
- brug mit 2. eksempel
Avatar billede _et Praktikant
05. juli 2002 - 21:57 #11
Jeg har prøvet eks2, og det er bedre, MEN jeg får nu denne fejl.
Microsoft OLE DB Provider for SQL Server error '80004005'

[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.

Jeg har skrevet min ip i data source og brugt "sa" som id.

Jeg smider lige nogle flere point i puljen hvis du har mere tålmodighed. :-)
Avatar billede tmceu Praktikant
05. juli 2002 - 22:14 #12
Det kunne lyde som om at du enten har angivet et password for sa, men at der ikke er noget password tilknyttet i SQL Server eller omvendt.

Det kunne også stadig være den famøse firewall, der ikke er åben på port 1433. Kan du forbinde til database fra Enterprise Manager eller Query Analyzer ?
Avatar billede _et Praktikant
05. juli 2002 - 22:22 #13
Jeg har ingen firewall, og jeg kan sagtens bruge Enterprise Manager.

Jeg har et password på sa, og det er det jeg bruger

Når jeg prøver netstat, så siger den at ms-sql-m lytter på UDP
Avatar billede tmceu Praktikant
05. juli 2002 - 22:33 #14
Jeg tror ikke det er dette, men du kunne alligevel prøve at kontrollere:

Enterprise Manager -> højre-klik på serveren -> Properties -> Security

Kontroller at der er valgt "SQL Server And Windows" authentication.

Hvis der kun er valgt Windows, vil du normalt få fejlen "not associated with trusted connection", men man ved aldrig.
Avatar billede _et Praktikant
05. juli 2002 - 22:37 #15
det var desværre ikke det.
Avatar billede tmceu Praktikant
05. juli 2002 - 22:40 #16
Har du enabled TCPIP på SQL Serveren ?

Enterprise Manager -> højre-klik på serveren -> Properties -> Network Configuration (knap i bunden)
Avatar billede _et Praktikant
05. juli 2002 - 23:05 #17
Ja, jeg har TCP/IP og named pipes, men den bruger port 1072 og ikke 1433 som du skrev i forbindelse med firewall.
Avatar billede _et Praktikant
10. juli 2002 - 23:26 #18
!!
Avatar billede tmceu Praktikant
12. juli 2002 - 23:04 #19
Og fejlen var ?
Avatar billede _et Praktikant
12. juli 2002 - 23:09 #20
Aner det ikke, Jeg har fået et andet problem på serveren, så dette er lige lagt på hylden for en stund.. :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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