Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] Firebird Stored Procedures e ADO

Ciao,
aiutatemi a capire cosa sia successo al mio PC!
Ho un applicativo VB6 che accede attraverso ODBC ad un database
Firebird.
Ora, ho una Stored Procedure all'interno di una query gerarchica.
Fino a qualche tempo fa tutto funzionava benissimo, da qualche tempo a
questa parte...non funge più e mi ritorna un errore:
-
2147217904
, Nessun valore specificato per alcuni parametri necessari.
La query è:
SHAPE {{ CALL SP_PERSONALE( ?) }} AS PERSONALE
APPEND ({SELECT * FROM "VIEW_RTX_DETAILS"}
RELATE PERS_IDRADIO TO IDRADIO) AS RADIO_PERS
VIEW_RTX_DETAILS è una vista (query), e SP_PERSONALE( ?) è la Stored
Procedure dichiarata così:
CREATE PROCEDURE SP_PERSONALE (
    ID_PERS Integer )
RETURNS (
    PERS_ID Integer,
    PERS_MATRICOLA Varchar(20),
    PERS_NOME Varchar(30),
    PERS_COGNOME Varchar(30),
    PERS_GRADO Integer,
    PERS_DISTACCAMENTO Integer,
    PERS_TELEFONO Varchar(15),
    PERS_CELLULARE Varchar(15),
    PERS_IDRADIO Varchar(15),
    PERS_NOTE Varchar(255),
    PERS_GRADO_DESC Varchar(30),
    PERS_DIST_DESC Varchar(50),
    PERS_IDUNITA Integer )
....
e il codice di chiamata è:
  With Cmd
    .ActiveConnection = Conn
    .CommandText = Query
    .CommandType = adCmdUnknown
    .Parameters.Append .CreateParameter("ID_PERS", adInteger,
adParamInput, , 0)
    .Execute
  End With
Se eseguo lo stesso codice su un altro PC, funge!
Se eseguo solo la SP passando tutti i parametri di IN/OUT, funziona!!
Avete suggerimenti?
Tnx.
Daniele.

 -
2147217904
, Nessun valore specificato per alcuni parametri necessari.
Non ho avuto modo di lavorare molto con Firebird, ma le domande che mi 
pongo sono:
-E' cambiata qualche configurazione o hai installato qualche 
aggiornamento da quando funzionava ad oggi?
-Hai i diritti di Execute su FB?
-Hai provato ad eseguire la stored con il comando "EXECUTE PROCEDURE" 
direttamente da ADO?
Nicola

 Nicola
Ciao Nicola,
dunque...ho fatto svariate prove.
L'applicazione sulle macchine di produzione funziona, quindi molto
probabilmente c'è qualcosa che non va sulla mia macchina.
Il vero problema è che non saprei ricondurre l'inizio dell'anomalia a
qualche cambiamento sul mio PC.
Recentemente ho installato Apache, PHP e Ruby, ed effettivamente da
allora qualche problema l'ho avuto!
Se eseguo la SP da sola funziona (ovviamente passandole anche tutti i
parametri di uscita).
Dall'errore che ricevo, sembra che la SP venga richiamata senza i
parametri di uscita. E forse questo è un problema del Provider
MSDataShape che passa al driver ODBC una query sbagliata.
Ho anche reinstallato MDAC 2.8 (con tasto DX->Installa su c:\windows
\inf\mdac.inf), ma niente!!
Help!
Daniele.

Forse ho risolto!!!
Innanzi tutto, c'era un errore nel comando SHAPE:
SHAPE {{ CALL SP_PERSONALE(?) }} AS PERSONALE
Le doppie parentesi!! Non so perchè prima funzionava!
Poi, il comando CALL SP_PERSONALE(?) non è accettato da Firebird
2.0.3, e l'ho dovuto modificare in
SELECT * FROM SP_PERSONALE(?), quindi inserendo:
SHAPE {SELECT * FROM SP_PERSONALE(?)} AS PERSONALE
Sembra funzionare tutto!
Stiamo a vedere!!
Tnx!
Daniele.

 2.0.3, e l'ho dovuto modificare in
Ecco, questo è un errore comune. Nel passaggio da FB 1.5 alla 2.0 
bisogna tenere conto di alcune modifiche strutturali introdotte.
Purtroppo non sono molto esperto di FB poichè ci ho lavorato 
marginalmente ma mi fa piacere che tu sia riuscito a risolvere.
Nicola

 bisogna tenere conto di alcune modifiche strutturali introdotte.
Questo è vero.
Sui i miei sw infatti installando il fb2.0 non funzionano di suo alcuni
comandi SQL.
E' anche abbastanza antipatica come cosa :\


Già!
Il problema però si è verificato sul passaggio dalla 2.0.0 alla 2.0.3
che, secondo le release notes, non introduceva differenze sostanziali
ma solo correzioni di alcuni bachi.
Cmq, tutto e bene quello che finisce bene! ;o)
Grazie per il supporto!
Bye,
Daniele.