/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
ADO Connection til Accessdatabase
Fra : JSH


Dato : 06-05-03 14:35

Kære NG
Jeg opretter forbindelse med en Access2000-database (fra en wordmakro)
med følgende kode:

Const StrMDB As String = "O:\BrugerDB\DBBruger.MDB"
Const StrConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & StrMDB
Dim cnnDB As ADODB.Connection

Set cnnDB = New ADODB.Connection
cnnDB.Open StrConn

Det virker fint på en hurtig forbindelse på vores netværk men på en
langsom tager det 3-15 sekunder at åbne databasen. Søgninger derefter
går ret hurtigt.

Hvordan kan det gøres hurtigere ?
Hvis jeg bruger en SQLServer i stedet for vil det så hjælpe ?
Hvis ja - hvordan er koden for at oprette forbindelsen og åbne
databasen.

På forhånd tak for hjælpen!

m.v.h.
John Hansen

 
 
Jens Brandt (07-05-2003)
Kommentar
Fra : Jens Brandt


Dato : 07-05-03 08:22

At anvende en Access database over et netværke er altid problematisk.
Når du henter data via et sql udtryk, så henter du rent faktisk alle
dataene, hvorefter jet motoren bagefter udvælger de data du så får
leveret.
Access over netværk er altid hård ved netværket.
Hvis du har et "dårligt" netværke og din applikation går ned kan din
Access database bliver ødelagt.

---------------------
Et godt alternativ til en Access database er en MSDE server, som er en
gratis udgave af SQL serveren, der er dog visse licensbetingelser du
skal opfylde før du må distribuere den med ud.
Hvis du har en af de store MS-office pakker, så følger den med deri.

Du kan åbne en MSDE/SQL server på denne måde:

Public adoCN As ADODB.Connection
--------------------------------

'Default for Netværks protokol er TCP/IP
mNetwork = ";Network Library=DBMSSOCN"

Server= "(local)" 'SQL servern er på min egen pc.
Database = "testbase"

sCn = "Server=" & Server & _
";Database=" & Database & _
mNetwork & _
";User ID=" & USERID & _
";Password=" & PASSWORD & _
";Application Name= Myappplication"


adoCN.Provider = "SQLOLEDB"
adoCN.ConnectionString = sCn
adoCN.CursorLocation = adUseClient
adoCN.CommandTimeout = 300
adoCN.Open
'Sæt mandag til første dag i ugen:
adoCN.Execute "SET DATEFIRST 1"
adoCN.Execute "SET NOCOUNT ON"

JSH (09-05-2003)
Kommentar
Fra : JSH


Dato : 09-05-03 12:40

Mange tak for hjælpen - nu er der godt nok fart på.
m.v.h.
John Hansen

Peter Lykkegaard (12-05-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 12-05-03 07:13

Som svar på skriblerier nedfældet af Jens Brandt :

> Et godt alternativ til en Access database er en MSDE server, som er en
> gratis udgave af SQL serveren, der er dog visse licensbetingelser du
> skal opfylde før du må distribuere den med ud.

Man skal også liige være opmærksom på at der er en limit på antal
connections man kan bruge på een gang mod en MSDE

mvh/Peter Lykkegaard



Jens Brandt (13-05-2003)
Kommentar
Fra : Jens Brandt


Dato : 13-05-03 10:25

> Man skal også liige være opmærksom på at der er en limit på antal
> connections man kan bruge på een gang mod en MSDE
>
> mvh/Peter Lykkegaard
>

Du kan finde noget om begrænsingerne i MSDE'en her

http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/dnmsde/html/msderoadmap.asp

Det er rigtig som Peter skriver, at der er nogle begrænsinger.
Hvis der er mere end 5 samtidige brugere på en database, så neddrosles
performance og hver database må ikke overstige 2 gb.
Men da du går fra en Access database, så regner jeg ikke med at dette
vil være noget problem. Mere end 5 samtidige brugere på en Access base
over et netværk, det bliver ofte meget langsomt og bruger mange
netværksressourcer.

/Jens

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste