[Risolto] SQLException, Nessun dato disponibile

Discussioni sulle caratteristiche di database
Rispondi
Nitroale
Messaggi: 19
Iscritto il: domenica 2 ottobre 2016, 8:58
Località: Friuli Venezia-Giulia

[Risolto] SQLException, Nessun dato disponibile

Messaggio da Nitroale »

Ciao a tutti,

Vi illustro un problema (questo problema è un surrogato di quello reale che è più complesso).
Ho un Database contenente tabelle, formulari e macro.
Devo ottenere a video un valore contenuto in una Tabella tramite la pressione di un Pulsante in un Sottoformulario.
Per fare ciò ho creato una macro che contiene un'Istruzione SQL e che mostra il risultato della colonna voluta in una Message Box (il risultato deve essere un solo valore perché nella tabella c'è solo un record).
Alla pressione del pulsante però mi restituisce l'errore: ... SQLException ... Nessun dato disponibile.

La stessa istruzione SQL se inserita e salvata in un Ricerca mi restituisce correttamente il record voluto (che osservo semplicemente aprendo la Ricerca).

Codice: Seleziona tutto

Sub ReadRow

	Dim oFrm as Object
	Dim oMainFrm as Object
	Dim oSubFrm as Object
	Dim oSubFrmB as Object
	Dim AAA as String

	oFrm = ThisDatabaseDocument.FormDocuments.getByName("FrmSA_M")
	oMainFrm = oFrm.Component.DrawPage.Forms.getByName("MainFrmSA_M")
	oSubFrm = oFrm.Component.DrawPage.Forms.getByName("MainFrmSA_M").getByName("SubFrmSA_M")
	oSubFrmB = oFrm.Component.DrawPage.Forms.getByName("MainFrmSA_M").getByName("SubFrmSA_M").getByName("SubFrmSA_M_B")

	oSubFrmB.reload
	
	oStatement = oSubFrmB.ActiveConnection.createStatement()
	sSQL = "SELECT CodArt FROM TblSA_Rw_BackUp "
	oStatement.executeQuery(sSQL)
	AAA = resuQuery.Columns.getByName("CodArt").String
	msgbox "risultato:" & AAA
	
End Sub
Qualche idea? .. per lo meno sul tipo di errore?

(PS: Ho visto in un post del forum inglese un link ad un altro post che suggeriva forse una soluzione ma aimè il link non apre nessuna pagina)

Grazie!
Ultima modifica di Nitroale il sabato 22 ottobre 2016, 13:44, modificato 2 volte in totale.
OpenOffice 4.1.2 - Windows 10 Home
vladboscaneanu
Volontario
Volontario
Messaggi: 378
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: SQLException, Nessun dato disponibile

Messaggio da vladboscaneanu »

Ciao.
Mi raccomando, usa dei nomi compressibili, anche se si trata solo dei nomi delle tabelle.
--------------------------------------------------------------------------------------------------------
Ti lo dico subito, è passato un po di tempo che non lavoro con LibreOffice, sopratutto con Base.
Dunque, l'errore ti dice, che nessun dato è disponibile.
Se tuo esempio deriva da un modello reale,sappi che c'è un errore dentro:
stai cercando di stampare una variabile, AAA,
che sarebbe il frutto di una operazione su un database,
pero,caro mio ,resuQuery è un oggetto, a qui non è stato assegnato qualcosa.
Ora lui è qualcosa tipo None, Null ,undefined (non ricordo come si chiama in LibreBasic questo tipo di variabile).
La riga prima, va modificata comme segue :

Codice: Seleziona tutto

resuQuery = oStatement.executeQuery(sSQL)
In questo modo ,resuQuery sara l'oggetto-risposta del database.
Ma l'aventura non finisce qui:
che cosa farai quando la colona "CodArt" avrà piu valori?
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Tra tutte le applicazioni Base è la piu difficile,certe cose non funzionano come in Calc Writer o Draw.
Pero vale la pena studiarlo, gli stessi concetti poi si trovano nei linguaggi moderni di programmazione.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Temporaneamente rispondo solo alla sera.
Cordialmente
LibreOffice ultima versione su Windows 10
Nitroale
Messaggi: 19
Iscritto il: domenica 2 ottobre 2016, 8:58
Località: Friuli Venezia-Giulia

Re: SQLException, Nessun dato disponibile

Messaggio da Nitroale »

Grazie per la risposta!

Purtroppo nel pulire il codice e postarlo mi son perso quel pezzo che generosamente mi suggerisce. Ti chiedo scusa.

Quindi ho prodotto un file di esempio in modo da evitare di farti perdere tempo senza farti capire il problema.

Nell'unica maschera ci sono le istruzioni per l'uso.

Quello che mi interessa è che l'istruzione SQL non legge i dati
(sorvoliamo su l'utilità della cosa perché il problema reale è un po' diverso .. la SELECT diventerà una UPDATE ...).

C'è anche una query salvata che invece legge correttamente il dato

Grazie ancora
Allegati
GestUbi.odb
(22.58 KiB) Scaricato 110 volte
OpenOffice 4.1.2 - Windows 10 Home
Nitroale
Messaggi: 19
Iscritto il: domenica 2 ottobre 2016, 8:58
Località: Friuli Venezia-Giulia

Re: SQLException, Nessun dato disponibile

Messaggio da Nitroale »

Aggiungo: se volessi interrogare con la macro la query salvata invece che dover scrivere un'istruzione SQL nella stessa macro ?

Grazie!
OpenOffice 4.1.2 - Windows 10 Home
vladboscaneanu
Volontario
Volontario
Messaggi: 378
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: SQLException, Nessun dato disponibile

Messaggio da vladboscaneanu »

Aggiungi prima della riga dove ti esce l'errore:

Codice: Seleziona tutto

resuQuery.next()
LibreOffice ultima versione su Windows 10
Nitroale
Messaggi: 19
Iscritto il: domenica 2 ottobre 2016, 8:58
Località: Friuli Venezia-Giulia

Re: SQLException, Nessun dato disponibile

Messaggio da Nitroale »

Funziona!

Grazie mille!

Saluti! :D
OpenOffice 4.1.2 - Windows 10 Home
Rispondi