Just nu i M3-nätverket
Jump to content

SQL


Kalinka

Recommended Posts

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?

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

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.

 

;-)

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...