Problemi ODBC

di il
18 risposte

Problemi ODBC

Buongiorno a tutti!

Non scrivo da un po... ma in questo periodo ho un problema che mi assilla e che sta diventando via via sempre più insistente.

Ho un piccolo gestionale fatto in access per la gestione dei viaggi dei mezzi che legge dati da una tabella MsSQL e scrive dati (per farli vedere ai dipendenti) su una tabella MySQL. Il DB principale (quello in cui vengono registrate e gestite le informazione è un normale DB Access condiviso su un server.

Il problema è che spesso il driver ODBC s'incastra e non mi permette di leggere i dati dal DB MsSQL o di scrivere nel DB MySQL.

Inizialmente pensavo che il problema fosse relativo alla scrittura su MySQL in quanto dovevo accedere al DB di un servizio host online. recentemente, invece sto aggiornando l'APP ed ho finito di aggiungere il log errori completo e mi sono accorto che il problema in realtà sta in egual modo sia sulla letura di MSSQL sia sulla scrittura di MySQL... E in effetti con un po più di attenzione mi sono reso conto che gli errori segnalati non sono sempre gli stessi...

Allego due immagini con due errori che mi escono... ma sono solo esempi (purtroppo ora non riesco a mandare il logo completo perchè non ce l'ho a disposizione)

Aggiungo che (randomicamente o almeno così sembra) a volte funziona tutto a volte non funziona nulla, a volte invece funziona un po si e un po no... non solo... a volte per farlo ripartire basta un refresh, a volte è necessario riavviare completamente l'APP...

18 Risposte

  • Re: Problemi ODBC

    Prova a trasferire i dati da MySql a un normale file di Access collegando poi le tabelle, di quest'ultimo, al file principale.

  • Re: Problemi ODBC

    Ciao e grazie per la risposta.

    Il problema è che la scelta delle diverse tecnologie non è dovuta a capricci ma alla necessità di convergere i dati di diversi gestionali all'interno della mia APP...

    Ammesso che questa prova funzioni, in che modo potrei trarne vantaggio?

  • Re: Problemi ODBC

    Mi viene però da chiedermi... la lettura/scrittura di queste tabelle avviene sempre tramite query... il problema potrebbe essere quello?

  • Re: Problemi ODBC

    Sicuro di essere collegato a mysql?

    Di aver usato il giusto driver ODBC per mysql?

    Io leggo sql server.

  • Re: Problemi ODBC

    La prova serve per vedere se i problemi continuano a verificarsi.

  • Re: Problemi ODBC

    Leggere che cosa e' l'errore NON SAREBBE una cattiva idea.

    Sembra che tu stia tentando di inserire una stringa di testo TROPPO LUNGA per la colonna destinazione.

    Devi scoprire QUALE TESTO E QUALE COLONNA sono coinvolte.

  • Re: Problemi ODBC

    19/08/2025 - migliorabile ha scritto:

    Leggere che cosa e' l'errore NON SAREBBE una cattiva idea.

    Sembra che tu stia tentando di inserire una stringa di testo TROPPO LUNGA per la colonna destinazione.

    Devi scoprire QUALE TESTO E QUALE COLONNA sono coinvolte.

    Certo… ho letto qual è l'errore e francamente non ne capisco il motivo, mi spiego meglio...

    Gli errori sono randomici e si verificano sia su MySQL sia su MSSql... le immagini che ho allegato sono solo degli esempi... casualmente entrambi riguardano lo stesso driver, ma a volte mi viene fuori addirittura "errore generico"

    Certamente l'errore dice che c'è una stringa di testo troppo lunga, tuttavia come mai se faccio partire la funzione non va e dopo 5 secondo faccio ripartire la stessa funzione e va senza problemi?? E soprattutto… considerato che dal DB MSSQL leggo e non scrivo e leggo esclusivamente dati molto corti (parliamo di ID utente o ID automezzi e stop, nient'altro... sono numeri di massimo 5 cifre e che non superano il 25.000...

    18/08/2025 - sihsandrea ha scritto:

    Sicuro di essere collegato a mysql?

    Di aver usato il giusto driver ODBC per mysql?

    Io leggo sql server.

    Certo... dovendo sfruttare i DB di diversi gestionali ho dovuto utilizzare sia MySQL che MSSql... le immagini sono solo degli esempi... diciamo che è l'errore che mi capita più spesso...

    Insisto anche nello specificare che il problema non si presenta uguale ogni giorno, a volte non capita mai... altri giorni invece sembra che proprio non voglia funzionare... io non so davvero che fare... perchè se si presentasse sempre... evidentemente c'è qualcosa che non va in quello che ho fatto... ma se a volte va e a volte no... anche lavorando sullo stesso record... boh...

  • Re: Problemi ODBC

    Per esempio...

    [MySQL][ODBC 9.4(a) Driver][mysqld-5.5.5-10.6.20-MariaDB-cll-lve-log]Lost connection to MySQL server during query (#2013) 

    Il timeout è impostato sul server MySQL a 5 minuti... l'operazione che fa in questo caso è di eliminare il record sul DB MySQL e riscriverlo con i dati aggiornati (parliamo di 6 colonne in totale)... possibile che la query c'impieghi 5 minuti a fare questa operazione? Possibile che lo stesso problema me lo dia anche su una DB MySQL che ho installato in sul mio PC e che volutamente ha tempi di attesa allungati a dismisura??

    Vorrei solo capire cosa ho sbagliato per eventualmente correggerlo...

  • Re: Problemi ODBC

    Fai vedere il codice che legge da mysql e scrive su mssql e viceversa.

    5 minuti? Non vai da sql?

  • Re: Problemi ODBC

    18/08/2025 - Pio ha scritto:

    Il problema è che la scelta delle diverse tecnologie non è dovuta a capricci ma alla necessità di convergere i dati di diversi gestionali all'interno della mia APP...

    un csv o un xml? esporti da uno e importi dall'altro. anche se non capisco come stai operando. il messaggio parla di evento click. che codice hai scritto?

  • Re: Problemi ODBC

    19/08/2025 - sihsandrea ha scritto:

    Fai vedere il codice che legge da mysql e scrive su mssql e viceversa.

    5 minuti? Non vai da sql?

    Ho fatto tutto tramite query...

    19/08/2025 - sihsandrea ha scritto:

    18/08/2025 - Pio ha scritto:

    Il problema è che la scelta delle diverse tecnologie non è dovuta a capricci ma alla necessità di convergere i dati di diversi gestionali all'interno della mia APP...

    un csv o un xml? esporti da uno e importi dall'altro. anche se non capisco come stai operando. il messaggio parla di evento click. che codice hai scritto?

    Al click sul pulsante access fa una serie di operazioni, quella su cui s'incastra è questa:

        ' Aggiorna tabelle
       Call modDebugging.ScriviLogAzioni("Scheda #" & PrenSecID & ":  mscPrenotazioneSecondari_mod, Inizio dell'aggiornamento delle tabelle online | Operatore: " & _
           [TempVars]![varOperatore] & " | Postazione: " & [TempVars]![varComputerNome])
       DoCmd.SetWarnings False
       DoCmd.OpenQuery "qryPrenotazioneSecondari_Pubblicazione_SvuotaTabella" ' QUESTA QUERY MI CANCELLA IL RECORD CHE HO APERTO NELLA MASCHERA IN BASE AL CAMPO ID
       DoCmd.OpenQuery "qryPrenotazioneSecondari_Pubblicazione" ' QUESTA QUERY MI RISCRIVE NELLA TABELLA MYSQL IL RECORD CHE PRECEDENTEMENTE HO CANCELLATO (PERCHè PARTO DAL PRESUPPOSTO CHE SIA SICURAMENTE STATO MODIFICATO)
       DoCmd.SetWarnings True
       Call modDebugging.ScriviLogAzioni("Scheda #" & PrenSecID & ":  mscPrenotazioneSecondari_mod, Fine dell'aggiornamento delle tabelle online | Operatore: " & _
           [TempVars]![varOperatore] & " | Postazione: " & [TempVars]![varComputerNome])
  • Re: Problemi ODBC

    Uhm... da uno stralcio non si capisce molto... non sai cosa sta eseguendo la query, non gestisci eventuali errori.

    per sql intendo l'istruzione sql non la chiamata ad una query salvata.

    per capirci:

    lettura dati select bla bla from origine where bla bla..
    trasferimento dati da un db ad un altro
    metodo passo passo (ciclando il recorset)
    variabili
    campotesto
    camponumero
    campoecc... (non conosco le tabelle ne i campi ne il tipo di campi)
    origine.first
    camponumero=origine.id (controlla se non cozza con altri id importati (*))
    campotesto=origine.descrizione
    ecc.... per i campi da importare
    riversare i dati usando le variabili come valori da inserire (meglio di me!controllo!ecc... almeno sai subito che dato stai trattando)
    origine.next
    fino alla fine del record
    eliminare i dati dalla tabella di origine
    delete from tabella where (le stesse condizioni che hanno creato l'origine)
    
    (*) di solito quando si importano dati da più fonti o database riporti l'id ma nella tabella destinataria questo id non puo' essere l'id della tabella di destinazione per il quale userei una chiave composta con id + mittente o postazione remota)
  • Re: Problemi ODBC

    Consiglierei di loggare tutte le query inviate dal programma, e timestamp

    Poi quelle che non vanno, provi a spararle usando altro db manager, cosi capisci se sia la query che non va oppure il driver odbc usato o la struttura db

    Potrebbero essere degli apici contenuti nella stringa che invii a sballare la comprensione lato db, o piccolezze di questo tipo

    Avendo i log query inviate, se da programma una falla, anche rimandandola con altro db maneger dovrebbe fallare

  • Re: Problemi ODBC

    @amorosik, ti ricordo

    1) ti stai rivolgendo ad un utente con evidenti lacune in ambito programmazione quindi potrebbe non comprendere un certo modo di esprimersi

    2) esiste una terminologia tecnica precisa

    le query non si 'sparano', si 'eseguono'

    il 'db manager' e' il 'database manager' ed e' il nome del client usato per interfacciarsi con SQL Server, NON  il nome generico di un client per accedere a database relazionali

    il database non 'sballa' nella comprensione: ci sono errori di sintassi

    un programma non 'falla',eventualmente 'fallisce l'esecuzione'

    Insomma, dai, sii piu' 'professionale' ed usa i termini corretti.

Devi accedere o registrarti per scrivere nel forum
18 risposte