PDA

View Full Version : [VB] Connessione ad Access, con Database residente nella car


race2
11-09-2002, 08:33
Con VB.NET,

Vorrei fare una connessione "OleDb" ad un Databease Access, solo che il database non lo voglio mettere obbligatoriamente su una cartella per essere poi costretto a fare una stringa di connessione che punta alla cartella dove c'e' il Database, ma vorrei una stringa di connesione che trova il database in qualunque punto lo possa mettere, ad esempio nella cartella dell'applicazione stessa,

Giusto...!!! lo voglo proprio mettere li, lo voglio includere come file supplementare nel "Setup" che faro',

per questo come devo fare a connettermi con un percorso "Relativo(MioDB.mdb)" al programma invece che con un percorso "Assoluto(C:\Programmi\Cartella_mio_programma\MioDB.mdb)" ???

questa e' la stringa che uso per un percorso "Assoluto":


Private conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Programmi\Cartella_mio_programma\MioDB.mdb; User ID=Admin; Password=")



Grazie!!!

cionci
11-09-2002, 12:27
Devi rilevare il percorso dell'applicazione...
In teoria questo viene passato all'applicazione quando viene lanciata...

Ti posso dire come trovarlo con le API...con VB.Net non ne ho idea..

Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As Long

GetComandLine ti rende una stringa che contiene il percorso e il nome dell'eseguibile...

Ad esempio :

C:\Programmi\miadirectory\mioprogramma.exe

Ora si tratta solo di lavorare con le stringhe...
Devi trovare nella stringa "mioprogramma.exe" e prendere tutto quello che gli sta sinistra...e dopo ci concateni il nome del DB...

Attento agli spazi (che possono anche essere sul nome della directory)...

race2
11-09-2002, 12:38
Ti ringrazio , ho trovato questa soluzione:


Imports System.IO



Dim miaDir As Directory
Dim mioFile As String = miaDir.GetCurrentDirectory & "\websson_domini.mdb"

race2
11-09-2002, 12:39
Scusami ma non mi potresti dare una mano in questo ???

http://forum.html.it/forum/showthread.php?s=&threadid=310920

cionci
11-09-2002, 14:44
Non ti serve la directory corrente...ma la directory dove si trova il programma...e non sempre concidono...

Un esempio semplice...

Apro il prompt in testo di Widnows...e lancio il tuo programma :

C:\>c:\Programmi\tuoProgramma\tuoProgramma.exe

La directory corrente rilevata sarà c:\ e non c:\Programmi\tuoProgramma\... Devi prendere il nome del programma lanciato dalla CommandLine...

Tra l'altro ho trovato come si fa in .Net :

Imports System
Imports System.Environment
Public Module modmain
Sub Main()
'The KPD-Team 2001
'URL: [url]http://www.allapi.net/dotnet/[/url]
'E-Mail: [email]KPDTeam@Allapi.net[/email]
Console.WriteLine("The command line of this process:")
Console.WriteLine(CommandLine)
End Sub
End Module