Connessioe oleDB pubblica

venerdì 09 maggio 2008 - 15.40

ridaria Profilo | Expert

ciao ragazzi,
ho una esigenza:
come creo una connessione OleDB Pubblica, cioè che posso richiamare da tutte le forms senza dover scrivere continuamente tutto il codice necessario per aprire la connessione?

Con vb 6.0
in un modulo inserivo:
Public cn As New ADODB.Connection

e poi con una funzione "apriConnessione" aprivo la connessione "cn" e potevo usarla in qualunque form del progetto.

Grazie

Riccardo
Ridaria

crds Profilo | Newbie

>ciao ragazzi,
>ho una esigenza:
>come creo una connessione OleDB Pubblica, cioè che posso richiamare
>da tutte le forms senza dover scrivere continuamente tutto il
>codice necessario per aprire la connessione?
>
>Con vb 6.0
>in un modulo inserivo:
>Public cn As New ADODB.Connection
>
>e poi con una funzione "apriConnessione" aprivo la connessione
>"cn" e potevo usarla in qualunque form del progetto.
>
>Grazie
>
>Riccardo
>Ridaria

tale e quale

In un modulo dichiari Public Cn As ADODB.Connection
poi nella form principale
Constr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=" & My.Computer.Name & "\SQLEXPRESS; Initial Catalog= "

Cn = New ADODB.Connection
Cn.ConnectionString = Constr & Dbname & ";"
If (Cn.State <> adStateOpen) Then Cn.Open()



dove



ridaria Profilo | Expert

parlavo di una connessione oleDB

e poi non capito cosa mi hai indicato di fare.

Grazie
Ridaria

Lucifel Profilo | Junior Member

In cosa stai programmando?
Vb 2005 / Vb 2008 / C# 2005

Cmq basta che crei una classe pubblica con le funzioni e i metodi che usavi in Vb 6 tutti pubblici (anche se sarebbe meglio che le facessi tutte private e poi usassi le property)


Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

ridaria Profilo | Expert

Grazie ho risolto.

Ma adesso ho un altro problema:

Leggo i dati da db, compio una modifica sui dati e tutto fila liscio, chiuda la form, la riapro e leggo le modifiche, apro il database e trovo ANCORA i dati ORIGINALI!!!!!!!

Chiuiudo vb 2005 lo riapro e rileggo i dati originali.

Che accade?
Come se scrivesse i dati da qualche parte che vede solo lui!!!!!!


Mi dai una mano?

Grazie
Riccardo
Ridaria

Lucifel Profilo | Junior Member

Sembra che tu faccia delle modifiche solo in memoria e non nel db. Prova a fare un debug nel punto in cui scrivi i dati e vedi che fa effettivamente. Magari non fa l'execute della query in db...

Ciao


Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

ridaria Profilo | Expert

TRovato, o meglio risolto, ma non del tutto:
Ho cambiato la stringa di connessione, che ho nel file "app.Config"
Questa era quella con cui non mi aggiornava i dati:
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\System\Database\DB_GESART_DATI.mdb"
Che usa la chiave: |DAtaDirectory|

Questa invece è quella che mi fa fare l'aggiornamento e che effettivamente SCRIVE sul DB:
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\RICCARDO\RiccardoVB\VBnet\GESART_3.0.0\Gesart\Gesart\System\Database\DB_GESART_DATI.mdb"

Come puoi notare questa contiene il percorso fisico del DB.
Ma non va bene, avrai già intuito il perché:
Va a farsi friggere la portabilità del software!
Che faccio per ogni cliente a cui installo il programma, devo cambiare la stringa di connessione inserendo il percorso fisico del db????
Queste cose non si facevano neanche in DOS, figuriamoci adesso.

Come faccio per creare una stringa di connessione che dinamicamente va a prendersi il percorso del db?

Chiaro che io il db intendo COMUNQUE piazzarlo in una Cartella interna alla cartella della applicazione.
Credo sia una questione di quaslcosa tipo: App.Path & "cartellaDatabase/nomeDB.mdb"
ma una cosa del genere non la posso certo scrivere nl app.Config.


Grazie resto in attesa.
Riccardo





Ridaria

Lucifel Profilo | Junior Member

Purtroppo il fatto che tu abbia un db access (che altro non è che un file) crea questi inconvenienti.
Anche io ho i path completi nell'App.Config quando devo accedere al file access.

Purtroppo non hai altre possibilità... almeno da quanto ne so io.

Io lo risolverei o salvando il file sempre sotto la stessa cartella quando faccio l'installazione o creando una form di installazione dove mi fa fare tutti i setting che mi servono, quindi anche scegliendo il percorso del file access.

Guarda, per ora non mi viene in mente altro,

Mi dispiace.

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5