Autore Topic: [RISOLTO] Connection.Type = "odbc"  (Letto 6448 volte)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
[RISOLTO] Connection.Type = "odbc"
« il: 13 Maggio 2010, 10:14:20 »
Magari a nessuno puo' interessare la cosa, ma per me l'uso della Connection.Type = "odbc" e' cosa quotidiana :)

Il problema si riscontra nella versione a 64 bit (anche in Gambas2 succedeva)

Durante la configurazione della Cconnection, tutto bene... Appena gli do in pasto una query con Connection.Exec() mi va in crash con il fatidico segnale #11.

Qualcuno di voi che conosce l'inglese (tipo... Leo, ho visto che sei un'esperto ;) ) e ha la possibilità di segnalare errori, puo' gentilmente intercedere e farlo presente?
« Ultima modifica: 30 Giugno 2011, 08:04:39 da milio »

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Connection.Type = "odbc"
« Risposta #1 il: 14 Maggio 2010, 00:39:14 »
Segnalato sulla ML.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Connection.Type = "odbc"
« Risposta #2 il: 14 Maggio 2010, 10:00:14 »
Grazie mille!!  :D

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Connection.Type = "odbc"
« Risposta #3 il: 17 Maggio 2010, 12:02:27 »
@ Leo

Mi sono iscritto anch'io alla ML di gambas e ho visto con piacere che Benoît ha risposto.
scrive questo:

Can you get a backtrace with gdb? And better get an output of running your
project inside valgrind?


Premesso che non ho mai fatto un backtrace, volevo  chiederti se ho fatto la cosa giusta...

sono andato nella cartella del progetto incriminato
ho lanciato il seguente comando:

gdb gbr3

poi ho lanciato

run <nome mio prog>

e mi ha restituito il seguente messaggio:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff722cdfd in free () from /lib/libc.so.6


avro' fatto la cosa giusta secondo te?

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Connection.Type = "odbc"
« Risposta #4 il: 17 Maggio 2010, 23:18:37 »
Immagino di sì: mai usato gdb XD.
Rispondi te o rispondo io a Benoit?
Visita il mio sito personale: http://www.leonardomiliani.com

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Connection.Type = "odbc"
« Risposta #5 il: 18 Maggio 2010, 08:21:19 »
Se puoi, e' meglio che rispondi tu... io per leggere il messaggio ho dovuto usare google translator :)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Connection.Type = "odbc"
« Risposta #6 il: 21 Maggio 2010, 14:46:07 »
Ciao Leo sono di nuovo qui a chiederti un favore....
Ho visto che il mio backtrace a Benoit non e' piaciuto :)

ti riporto l'input dato da gdb dopo aver fatto la corretta sequenza di comandi :)


Codice: [Seleziona]
paolo@notebook:~/Sorgenti/Componenti/gb.gridbox$ gdb gbx3
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/bin/gbx3...done.
(gdb) set args -p
(gdb) run
Starting program: /usr/local/bin/gbx3 -p
[Thread debugging using libthread_db enabled]
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: Nessun file o directory
[New Thread 0x7fffe9c98710 (LWP 1859)]
QFileSystemWatcher: failed to add paths: /home/paolo/.config/ibus/bus
Bus::open: Can not get ibus-daemon's address.
IBusInputContext::createInputContext: no connection to ibus-daemon

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff722cdfd in free () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff722cdfd in free () from /lib/libc.so.6
#1  0x0000000000419187 in GB_Free (addr=0x7fffffffc4ec) at gbx_api.c:1444
#2  0x00007ffff12cefba in my_free (desc=0x9a4510, db=0x9a44c8) at main.c:117
#3  open_database (desc=0x9a4510, db=0x9a44c8) at main.c:532
#4  0x00007ffff14d75bc in DB_Open (desc=0x9a4510, driver=0x9a44c0, db=0x9a44c8)
    at main.c:209
#5  0x00007ffff14d7b45 in open_connection (_object=0x9a44b0)
    at CConnection.c:81
#6  check_opened (_object=0x9a44b0) at CConnection.c:89
#7  0x00007ffff14d826d in CCONNECTION_exec (_object=0x9a44b0, _param=0x651db0)
    at CConnection.c:432
#8  0x0000000000407d7d in EXEC_call_native (exec=0xa56370,
    object=0x9a451000a08230, type=140737239627200, param=0x422f0)
    at gbx_exec.c:979
#9  0x00000000004089cd in EXEC_native () at gbx_exec.c:1185
#10 0x0000000000429fc1 in EXEC_loop () at gbx_exec_loop.c:982
#11 0x0000000000409521 in EXEC_function_loop () at gbx_exec.c:795
#12 0x00000000004098db in EXEC_function_real () at gbx_exec.c:782
#13 0x0000000000419839 in raise_event (observer=<value optimized out>,
    object=<value optimized out>, func_id=<value optimized out>, nparam=271088)
    at gbx_api.c:483
#14 0x0000000000419fc2 in GB_Raise (object=0x96c9b0,
    event_id=<value optimized out>, nparam=0) at gbx_api.c:585
#15 0x00007ffff6d4400d in CButton::clicked (this=<value optimized out>)
    at CButton.cpp:692
#16 0x00007ffff6d43cf2 in CButton::qt_metacall (this=0x7ffff6fa5910,
    _c=QMetaObject::InvokeMetaMethod, _id=0, _a=<value optimized out>)
    at CButton_moc.cpp:173
#17 0x00007ffff5082e3f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#18 0x00007ffff5bde5f2 in QAbstractButton::clicked(bool) ()
   from /usr/lib/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#19 0x00007ffff58f886b in ?? () from /usr/lib/libQtGui.so.4
#20 0x00007ffff58f970b in ?? () from /usr/lib/libQtGui.so.4
#21 0x00007ffff58f997c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/libQtGui.so.4
#22 0x00007ffff5599582 in QWidget::event(QEvent*) ()
   from /usr/lib/libQtGui.so.4
#23 0x00007ffff554322c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/libQtGui.so.4
#24 0x00007ffff5549ecb in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#25 0x00007ffff507006c in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/libQtCore.so.4
#26 0x00007ffff55490ae in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/libQtGui.so.4
#27 0x00007ffff55c8f65 in ?? () from /usr/lib/libQtGui.so.4
#28 0x00007ffff55c78ac in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/lib/libQtGui.so.4
#29 0x00007ffff55f4199 in ?? () from /usr/lib/libQtGui.so.4
#30 0x00007ffff506e992 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#31 0x00007ffff506ed6c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#32 0x00007ffff5072aab in QCoreApplication::exec() ()
   from /usr/lib/libQtCore.so.4
#33 0x00007ffff6d3a1cc in hook_loop () at main.cpp:673
#34 0x000000000041ee78 in main (argc=1, argv=<value optimized out>)
    at gbx.c:356
(gdb)
« Ultima modifica: 21 Maggio 2010, 14:53:11 da milio »

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Connection.Type = "odbc"
« Risposta #7 il: 21 Maggio 2010, 14:55:57 »
Se non altro adesso ho imparato a fare i backtrace ;)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Connection.Type = "odbc"
« Risposta #8 il: 24 Maggio 2010, 15:07:48 »
OK.  Ho segnalato.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Connection.Type = "odbc"
« Risposta #9 il: 25 Maggio 2010, 15:37:28 »
Benoit ha risposto. In pratica se ne lava le mani perché non sa come funziona il driver ODBC dato che non l'ha scritto lui.
Chiede il sorgente completo del tuo esempio che ha generato l'errore. Me lo potresti spedire via mail oppure lo potresti allegare a questa discussione (soluzione migliore)?
Visita il mio sito personale: http://www.leonardomiliani.com

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Connection.Type = "odbc"
« Risposta #10 il: 26 Maggio 2010, 09:13:54 »
mmm...
credo che non sia cosi' semplice....

la parte di codice e' semplicissima:

With Connection
  .Type = "odbc"
  .Host = "nome collegamento odbc"
  .User
  .Password
End With

Connectio.Exec("mia query") '<-- qui genera l'errore'

usando odbc pero' dovrei anche postargli:
il database (uno qualsiasi che utilizzi driver odbc)
i file di configurazione odbc.ini e odbcinst.ini
e in oltre si deve installare i pacchetti per i driver odbc...

penso che ci debba rinunciare ad avere una versione a 64 bit di linux in ditta :(

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Connection.Type = "odbc"
« Risposta #11 il: 26 Maggio 2010, 09:17:03 »
Magari tu mi sai indirizzare in un altro modo per riuscirmi a collegare con ms-sql di micro$oft

Tra le altre cose non funziona neanche la proprieta' Result.Count sia su versione a 32 che a 64 bit, sia di gambas2 che gambas3
ritorna sempre -1 nonostante il Result abbia dei record caricati... ma questa l'ho sempre risolta contando il un ciclo il numero di record....

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Connection.Type = "odbc"
« Risposta #12 il: 26 Maggio 2010, 10:45:15 »
Magari tu mi sai indirizzare in un altro modo per riuscirmi a collegare con ms-sql di micro$oft

Tra le altre cose non funziona neanche la proprieta' Result.Count sia su versione a 32 che a 64 bit, sia di gambas2 che gambas3
ritorna sempre -1 nonostante il Result abbia dei record caricati... ma questa l'ho sempre risolta contando il un ciclo il numero di record....

(S)fortunatamente non ho avuto ancora la necessità di dovermi collegare ad un DB SQL di Microsoftz XD
Boh, io provo a riportargli quello che mi hai scritto. Magari qualcun altro ha avuto la tua stessa necessità ed ha risolto in qualche modo.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Connection.Type = "odbc"
« Risposta #13 il: 30 Giugno 2011, 08:03:54 »
Aggiorniamo questo 3d con questo messaggio nel ChangeLog di Gambas3:


------------------------------------------------------------------------
r3906 | gambas | 2011-06-28 13:45:29 +0200 (mar, 28 giu 2011) | 6 lines

[GB.DB.ODBC]
* BUG: Fix a stupid crash that occurs on 64 bits systems only.



Discussione chiusa... Finalmente :)