Odbc foxpro errore: "chiamata non riuscita"

lunedì 07 marzo 2011 - 15.03
Tag Elenco Tags  C#  |  VB.NET  |  .NET 2.0  |  Visual Studio 2008  |  Access (.mdb)

skibu Profilo | Junior Member

ciao a tutti, ho un database in foxpro che risiede in un pc. Ho condiviso la cartella in modo da lavorare su altro pc, ho creato un odbc di sistema che punta al database e in un file access ho collegato le tabelle.

Con un programma .net devo fare delle query di insert/update ma quando vado ad eseguirle ho l'errore "ODBC: chiamata non riuscita"
Per collegarmi al db in access uso il provider "Microsoft.Jet.OLEDB"

Cosa può essere?

alx_81 Profilo | Guru

>ciao a tutti,
ciao

>Con un programma .net devo fare delle query di insert/update
>ma quando vado ad eseguirle ho l'errore "ODBC: chiamata non riuscita"
>Per collegarmi al db in access uso il provider "Microsoft.Jet.OLEDB"
>Cosa può essere?
Da access hai provato ad accedere alle tabelle? Perchè se da Access funziona, puoi provare ad usare ODBC anche per connetterti ad Access stesso.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

skibu Profilo | Junior Member

si da access funziona, riesco a modificare/eliminare record, tranne in una tabella mi restituisce questo errore: "ODBC: operazione update non riuscita su tabella collegata 'nometabella'. [Microsoft][ODBC Visual FoxPro Driver]SQL: Statement too long. (812)"

per quanto riguarda le query dal programma .net sono riuscito ad eseguirle, ho aggiunto tutti i campi presenti, anche quelli che non sono obbligatori e vanno a buon fine

alx_81 Profilo | Guru

>si da access funziona, riesco a modificare/eliminare record,
>tranne in una tabella mi restituisce questo errore: "ODBC: operazione
>update non riuscita su tabella collegata 'nometabella'. [Microsoft][ODBC
>Visual FoxPro Driver]SQL: Statement too long. (812)"
questo è perchè hai passato una frase sql troppo lunga..

>per quanto riguarda le query dal programma .net sono riuscito
>ad eseguirle, ho aggiunto tutti i campi presenti, anche quelli
>che non sono obbligatori e vanno a buon fine
quindi il problema dove lo ritrovi?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

skibu Profilo | Junior Member

>>si da access funziona, riesco a modificare/eliminare record,
>>tranne in una tabella mi restituisce questo errore: "ODBC: operazione
>>update non riuscita su tabella collegata 'nometabella'. [Microsoft][ODBC
>>Visual FoxPro Driver]SQL: Statement too long. (812)"
>questo è perchè hai passato una frase sql troppo lunga..

ho semplicemente modificato a mano un campo della tabella, ma non salva restituendo quell'errore

>>per quanto riguarda le query dal programma .net sono riuscito
>>ad eseguirle, ho aggiunto tutti i campi presenti, anche quelli
>>che non sono obbligatori e vanno a buon fine
>quindi il problema dove lo ritrovi?

adesso sto facendo dei test, l'errore "odbc chiamata non riuscita" si verifica solo alcune volte, sto cercando di capire se è un problema di dati e del formato dei valori che passo

>Alessandro Alpi | SQL Server MVP
>MCP|MCITP|MCTS|MCT
>
>http://www.alessandroalpi.net
>http://blogs.dotnethell.it/suxstellino
>http://mvp.support.microsoft.com/profile/Alessandro.Alpi

alx_81 Profilo | Guru

>adesso sto facendo dei test, l'errore "odbc chiamata non riuscita"
>si verifica solo alcune volte, sto cercando di capire se è un
>problema di dati e del formato dei valori che passo
purtroppo, trattandosi foxpro praticamente di un abandonware, non so proprio aiutarti ulteriormente.
Lo usavo nel mio primo lavoro, applicato ad un gestionale, ma ormai non uso connessioni odbc via foxpro da molto.
facci sapere
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

skibu Profilo | Junior Member

>>adesso sto facendo dei test, l'errore "odbc chiamata non riuscita"
>>si verifica solo alcune volte, sto cercando di capire se è un
>>problema di dati e del formato dei valori che passo
>purtroppo, trattandosi foxpro praticamente di un abandonware,
>non so proprio aiutarti ulteriormente.
>Lo usavo nel mio primo lavoro, applicato ad un gestionale, ma
>ormai non uso connessioni odbc via foxpro da molto.
>facci sapere

forse ho capito il problema, ci sono dei campi che fanno da chiave primaria multipla, cioè non è possible inserire più righe con gli stessi valori
ho una cosa del tipo:
anno | tipodocumento | numerodocumento
non posso inserire due righe con gli stessi valori per questi tre campi

purtroppo te ne accorgi solo provando e riprovando :-(

da quello che ho capito, l'errore "chiamata non riuscita" è un errore generico e può derivare da varie cose. Può dipendere dal fatto che non si valorizzano tutti i campi della tabella (come nel mio caso prima) o che ci siano dei campi con valori duplicati non ammessi e sicuramente ce ne saranno altri.
Spero di non trovare altri problemi, intanto grazie per l'interessamento


alx_81 Profilo | Guru

>purtroppo te ne accorgi solo provando e riprovando :-(
ma non dovresti ottenere una violazione di un vincolo come errore?

>da quello che ho capito, l'errore "chiamata non riuscita" è un
>errore generico e può derivare da varie cose. Può dipendere dal
>fatto che non si valorizzano tutti i campi della tabella (come
>nel mio caso prima) o che ci siano dei campi con valori duplicati
>non ammessi e sicuramente ce ne saranno altri.
>Spero di non trovare altri problemi, intanto grazie per l'interessamento
sinceramente credo che debba esserci da qualche parte l'errore.. hai provato a fare debug andando a vedere l'innerexception?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

skibu Profilo | Junior Member

>>purtroppo te ne accorgi solo provando e riprovando :-(
>ma non dovresti ottenere una violazione di un vincolo come errore?

pensavo anch'io, ma restituisce sempre "chiamata non riuscita".
Ho fatto la prova con la chiave primaria di una tabella, la quale deve essere progressiva, o comunque non deve esserci già, inserendo nella query un valore che è già presente nel db e ho sempre lo stesso errore. Da questo ho dedotto che deve essere un errore generico

>>da quello che ho capito, l'errore "chiamata non riuscita" è un
>>errore generico e può derivare da varie cose. Può dipendere dal
>>fatto che non si valorizzano tutti i campi della tabella (come
>>nel mio caso prima) o che ci siano dei campi con valori duplicati
>>non ammessi e sicuramente ce ne saranno altri.
>>Spero di non trovare altri problemi, intanto grazie per l'interessamento
>sinceramente credo che debba esserci da qualche parte l'errore..
>hai provato a fare debug andando a vedere l'innerexception?

Si ma non trovo alcuna informazione che mi possa aiutare ad individuare il problema
Riesco ad aggirare il problema, utilizzo un progressivo per il campo numerodoc e non dovrei aver problemi



alx_81 Profilo | Guru

>Si ma non trovo alcuna informazione che mi possa aiutare ad individuare
>il problema
>Riesco ad aggirare il problema, utilizzo un progressivo per il
>campo numerodoc e non dovrei aver problemi
tutto sta a vedere se quella chiave è logicamente corretto bypassarla.. non riesci a gestire l'errore con una cosa tipo try catch e non evitare il problema con un workaround?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

skibu Profilo | Junior Member

>>Si ma non trovo alcuna informazione che mi possa aiutare ad individuare
>>il problema
>>Riesco ad aggirare il problema, utilizzo un progressivo per il
>>campo numerodoc e non dovrei aver problemi
>tutto sta a vedere se quella chiave è logicamente corretto bypassarla..
>non riesci a gestire l'errore con una cosa tipo try catch e non
>evitare il problema con un workaround?

si sarebbe la cosa più giusta
adesso vedo se applicarla subito o se inserire questo controllo in secondo momento.

ti chiedo una cosa perchè non conosco tanto foxpro, è possibile che ci siano questi tipi di vincoli, per esempio queste chiavi multiple a più campi, anche se poi in struttura tabella è impostato un solo campo come chiave?

Comunque grazie del supporto!

alx_81 Profilo | Guru

>ti chiedo una cosa perchè non conosco tanto foxpro, è possibile
>che ci siano questi tipi di vincoli, per esempio queste chiavi
>multiple a più campi, anche se poi in struttura tabella è impostato
>un solo campo come chiave?
un attimo.. il db è su file dbf vero? Comunque non ricordo se si possono fare constraint al di là della primary key (se è quello che mi chiedi).
con i moderni RDBMS sì, basta fare un vincolo unique e non "vedere" quel campo come chiave primaria effettiva.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

skibu Profilo | Junior Member

>>ti chiedo una cosa perchè non conosco tanto foxpro, è possibile
>>che ci siano questi tipi di vincoli, per esempio queste chiavi
>>multiple a più campi, anche se poi in struttura tabella è impostato
>>un solo campo come chiave?
>un attimo.. il db è su file dbf vero? Comunque non ricordo se
>si possono fare constraint al di là della primary key (se è quello
>che mi chiedi).
>con i moderni RDBMS sì, basta fare un vincolo unique e non "vedere"
>quel campo come chiave primaria effettiva.

si è un file dbf, è che in struttura nella tabella di access collegata ne vedo impostata una sola di chiave primaria e mi chiedevo se in foxpro si può impostare una chiave a più campi e magari access non "riesce" a far vedere questo vincolo

alx_81 Profilo | Guru

>si è un file dbf, è che in struttura nella tabella di access
>collegata ne vedo impostata una sola di chiave primaria e mi
>chiedevo se in foxpro si può impostare una chiave a più campi
>e magari access non "riesce" a far vedere questo vincolo
prova a vedere se ha indici che includono il vincolo di univocità..
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5