Just nu i M3-nätverket
Gå till innehåll

SQL


Kalinka

Rekommendera Poster

Gunnar Liljas

Omöjligt att svara på, eftersom det finns hundratals olika SQL-databasmotorer. Men, visst, ODBC är den vanligaste vägen.

 

Vad jämförde du med?

Länk till kommentar
Dela på andra webbplatser

Gunnar Liljas

Ja, då är det smidigaste att sätta upp en system-DSN i ODBC-kontrollpanelen, och ansluta mod den, från ASP (ADODB)

Länk till kommentar
Dela på andra webbplatser

Hej,

 

Med de "riktiga" SQL databaserna öppnar du aldrig en databas. Däremot kopplar du upp dig mot dem, jmfr med en server.

 

När du vill ha saker utförda ber du databasen (DBMS) att utföra uppgifterna.

 

Du kan koppla upp dig mot en databas på många olika sätt.

 

Det finns tre huvuddelar: Protokoll (nätverks språk) och Lågnivå Drivrutin (Funktions bibliotek som översätter dina anrop till något som databasen förstår) samt funktionsbibliotek (se dem som drivrutiner för drivrutinen).

 

Protokoll bestämmer hur du kopplar upp dig och kommunicerar med själva databasservern. För MS SQL så gäller IP/Sockets, Named Pipes och Multi Protokoll.

IP/Sockets är det enda du kan använda när du anropar direkt från ASP eftersom det inte kräver NTLM autenticering. NTLM innebär att du måste ha NT behörighet till SQL Servern.

 

De vanligaste lågnivå drivrutinerna är ODBC och OLEDB. OLEDB är det senaste från Microsoft.

ODBC är ett äldre API och är igentligen endast till för relationsdatabaser. OLEDB å andra sidan innehåller mer generella funktioner som kan användas på andra datalagringstyper än relationsdatabaser. Pga av att ODBC innehåller mindre funktionalitet är det snabbare än OLEDB vid högre last.

 

Att skriva kod direkt mot ODBC och OLEDB är inte att rekommendera. Istället använder man funktionsbibliotek typ RDO och ADO. ADO är det vanligaste förekommande när man kodar ASP. Dock är ADO direkt knutet till OLEDB och kan endast användas till det. Det finns en möjlighet att använda ODBC med ADO men då går du via OLEDB ändå.

 

För att koppla upp sig mot en databas anger du en connectionsträng. Den innehåller parametrar som vilken server du skall nå, vilket protokoll, vilken drivrutin, användarnan och lösenord du vill använda.

 

Det är samma information i en DSN som i en connectionsträng. Faktum är att om du använder en DSN så tillverkas connectionsträngen automatiskt åt dig, men slutresultatet är som sagt alltid en connectionsträng. Därför kan du like väl tillverka den själv direkt.

 

Nedan är ett exempel på OLEDB connectionsträng.

sConn = "Provider=SQLOLEDB;Server=127.0.0.1;Initial Catalog=master;UID=sa;PWD=;"

 

/foo

 

 

Länk till kommentar
Dela på andra webbplatser

En fundering/tanke: för att minska antalet samtidiga connections till en databas så kan man köra ett disconnected recordset, det snabbar upp bra.

 

Fungerar väldigt bra vid clustrade lösningar då man lägger datan på IIS sidan och slipper belasta SQL'en.

 

;-)

Länk till kommentar
Dela på andra webbplatser

Foo!

 

Tack för att ny bjöd på kunskap om förhållandet mellan ODBC, OLEDB och ADO.

 

Har alltid undrat hur de hängt samman...

[inlägget ändrat 2000-06-30 12:07:04 av Starberg]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...