Newsgroup: it.comp.lang.visual-basic
Titolo: da Jet-->MSDE

Ciao a tutti, mi trovo ad affrontare questo problema.
In azienda c'e' un gestionale scritto in Vb che si appoggia ad un Db access.
Io ho scritto alcuni programmini esterni che si appoggiano a tale db e tutto
funge alla perfezione, comprese delle query parametriche residenti sul db
access, chiamate da me con ADO con Vb6.
Esce l'aggiornamento del gestionale, portato tutto su MSDE.Ora devo fare
l'aggiornamento anche dei miei programmini.
Riesco quasi in tutto, ma mi sono arenato sulle query parametriche residenti
(che ovviamente non ci sono piu, quindi ex-residenti).
Le devo rifare da capo, ma proprio non ci riesco...sono 3 giorni che cerco,
giro ma non capisco....
Qualcuno riesce a darmi almeno una dritta su come risolvere sto' problema??
Ah, mi collego al db MSDE attraverso un progetto di access e da li' creo le
tabelle e le varie 'visualizzazioni', dato che adesso si chiamano cosi'.. e
che poi richiamero' da Vb6 sempre con ADO.
Veramente grazie  1000 a chi mi helperà!
Umbe

 ha scritto nel messaggio
news:ced5nk$3dn$1...@grillo.cs.interbusiness.it...

probabilmente le query parametriche sono state sostituite con stored
procedures, che puoi comunque continuare ad utilizzare tranquillamente,
tipicamente
        Set oCmd = New ADODB.Command
        Set oParam = New ADODB.Parameter
        With oCmd
            .ActiveConnection = connection
            .CommandTimeout = 15
            .CommandText = "usp_nome_procedura"
            .CommandType = adCmdStoredProc
            Set oParam = .CreateParameter("dtTimer", adDate, adParamInput,
8, Value:=dtTimer)
            .Parameters.Append oParam
            On Local Error Resume Next
            Set adoRS = oCmd.Execute
            lErr = Err.Number
            Debug.Print Err.Description
            On Local Error GoTo 0
        End With
        If Not oParam Is Nothing Then Set oParam = Nothing
        If Not oCmd Is Nothing Then Set oCmd = Nothing
e simile.... tutto sta a trovare le procedure corrette...
per tua comodita', se non disponi di Enterprise Manager, puoi utilizzare un
mio progetto disponibile all'indirizzo sotto la mia firma che ne emula
alcune funzionalita', tra queste la possibilita' di "ricercare" e vedere,
appunto, le stored procedures a te interessanti
saluti
-- 
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtm
 
http://italy.mvps.org
DbaMgr2k ver 0.8.0  -  DbaMgr ver 0.54.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
--------- remove DMO to reply

 tipicamente
[CUT]
Ciao Andrea, ho letto un sacco di tuoi post in giro...è un onore...
Le query (ex) parametriche non sono state sostituite con delle sp, anche
perchè le ho scritte io le query (ex) parametriche e sono sparite dal db.
Il mio problema è proprio nello scrivere queste nuove query.(o è meglio
parlare adesso di visualizzazioni??)
Ricordo che utilizzo access 2000 per accedere al db MSDE.
Se vado in visualizzazioni ed uso una cosa semplicissima del tipo:
SELECT *
FROM tblClienti
WHERE id=?
non riesco nè ad eseguire la visualizzazione da acces nè, sopratutto a
salvarla,riportandomi Access l'errore: " Errore ADO: Nessun valore
specificato per alcuni parametri necessari".
La cosa strana è che se da vb e con ado gli mando la stringa di cui sopra
usando il command ed il relativo parametro tutto funzia.
Se almeno riuscissi a salvarla quella visualizzazione di cui sopra,
passandogli il relativo parametro secondo me funzionerebbe.(cosi' some
avveniva con jet).Mi sà che visualizzazioni parametriche non siano
possibili....e dovro' necessariamente usare le sp...
Umbe

 possibili....e dovro' necessariamente usare le sp...
ADO consente di parametrizzare delle interrogazioni in tal senso con SQL
dinamico provveduto via codice... ma per maggiore correttezza formale
potresti riscrivere le QueryDef precedenti in apposite stored procedures,
cosi' manterresti anche la stessa struttura client precedente, chiaramente
avendo l'accortezza di tenere presente il nuovo engine..
a queste stored procedures passeresti (indicativamente) gli stessi parametri
provvisti alle querydefs
per cui avresti qualche cosa di simile a
CREATE PROCEDURE dbo.usp_Clienti (@idCliente INT)
AS
    SELECT *
        FROM tblClienti
        WHERE id= @IdCliente
