Italian LETTURA DATI DA MS SQL SERVER

LUCA MANZATO

Member
Licensed User
Ciao a tutti,
sto muovendo i primi passi in B4A... devo leggere dei dati da un db MS SQL e sto provando la libreria MSSQL.
Sono arrivato a questo risultato che funziona ma mi vergogno molto...
C'è un modo più elegante di leggere i dati?
Grazie in anticipo
Luca

Private Sub btnOK_Click

Dim L As List
Barcode = txtInputBarcode.Text
Dim idprodotto As Int
Dim pn As String

sql = "select idprodotto from commesseciclilavorazione where barcode = '" & Barcode & "'"
L = SQLCONN_GP90.Query(sql)
idprodotto = (l.Get(1))
idprodotto = Regex.Replace("\[",idprodotto,"")
idprodotto = Regex.Replace("\]",idprodotto,"")

sql = "select codice from prodotti where id = " & idprodotto & "
L = SQLCONN_GP90.Query(sql)
pn = (l.Get(1))
pn = Regex.Replace("\[",pn,"")
pn = Regex.Replace("\]",pn,"")

MsgboxAsync (pn,"")

End Sub
 

LucaMs

Expert
Licensed User
Longtime User
Ciao a tutti,
sto muovendo i primi passi in B4A... devo leggere dei dati da un db MS SQL e sto provando la libreria MSSQL.
Sono arrivato a questo risultato che funziona ma mi vergogno molto...
C'è un modo più elegante di leggere i dati?
Grazie in anticipo
Luca

Private Sub btnOK_Click

Dim L As List
Barcode = txtInputBarcode.Text
Dim idprodotto As Int
Dim pn As String

sql = "select idprodotto from commesseciclilavorazione where barcode = '" & Barcode & "'"
L = SQLCONN_GP90.Query(sql)
idprodotto = (l.Get(1))
idprodotto = Regex.Replace("\[",idprodotto,"")
idprodotto = Regex.Replace("\]",idprodotto,"")

sql = "select codice from prodotti where id = " & idprodotto & "
L = SQLCONN_GP90.Query(sql)
pn = (l.Get(1))
pn = Regex.Replace("\[",pn,"")
pn = Regex.Replace("\]",pn,"")

MsgboxAsync (pn,"")

End Sub
Ciao.

Ma a che serve cercare il codice = idprodotto se hai già questo valore?
Capirei se dalla tabella prodotti tu recuperassi anche i dati di altri campi.
 

LucaMs

Expert
Licensed User
Longtime User
Potresti fare la query in due modi (sempre se dovrai recuperare anche altri dati dalla tabella "prodotti", altrimenti tutto è superfluo)

B4X:
Dim Barcode as String = txtInputBarcode.Text

    Dim Query As String = $"
SELECT
    codice,
    Nome,
    Prezzo
FROM
    prodotti
WHERE
    codice = (SELECT idprodotto
               FROM commesseciclilavorazione
               WHERE idprodotto = '${Barcode}');
"$


' Oppure con JOIN:

    Dim Query As String = $"
SELECT
    p.codice,
    p.Nome,
    p.Prezzo
FROM
    commesseciclilavorazione c
INNER JOIN
    prodotti p ON c.idprodotto = p.codice
WHERE
    p.codice = '${Barcode}';
"$

(Ovviamente con i campi che ti servono dalle tabelle "prodotti", non quei Nome e Prezzo che ho messo come esempi)
 
Last edited:

LUCA MANZATO

Member
Licensed User
Potresti fare la query in due modi (sempre se dovrai recuperare anche altri dati dalla tabella "prodotti", altrimenti tutto è superfluo)

B4X:
Dim Barcode as String = txtInputBarcode.Text

    Dim Query As String = $"
SELECT
    codice,
    Nome,
    Prezzo
FROM
    prodotti
WHERE
    codice = (SELECT idprodotto
               FROM commesseciclilavorazione
               WHERE idprodotto = '${Barcode}');
"$


' Oppure con JOIN:

    Dim Query As String = $"
SELECT
    p.codice,
    p.Nome,
    p.Prezzo
FROM
    commesseciclilavorazione c
INNER JOIN
    prodotti p ON c.idprodotto = p.codice
WHERE
    p.codice = '${Barcode}';
"$

(Ovviamente con i campi che ti servono dalle tabelle "prodotti", non quei Nome e Prezzo che ho messo come esempi)
Grazie Luca per l'help.
Il mio era solo un esempio didattico.... quello dove mi sono incasinato è la gestione del tipo di dati ritornato dalla chiamata a SQLCONN che, mi pare di capire, sia sempre di tipo list e quindi poi passare il risutltao da list a variabili di tipo numerico o a stringa... Arrivo da VB.net dove le cose sono un po' più semplici...
 

LucaMs

Expert
Licensed User
Longtime User
Grazie Luca per l'help.
Il mio era solo un esempio didattico.... quello dove mi sono incasinato è la gestione del tipo di dati ritornato dalla chiamata a SQLCONN che, mi pare di capire, sia sempre di tipo list e quindi poi passare il risutltao da list a variabili di tipo numerico o a stringa... Arrivo da VB.net dove le cose sono un po' più semplici...
Allora devo guardare quella libreria, che non conosco.

Se ne hai la possibilità, potresti usare jRDC2, che ha alcuni vantaggi (devi avere un tuo server fisico o un VPS)
 

LUCA MANZATO

Member
Licensed User
Allora devo guardare quella libreria, che non conosco.

Se ne hai la possibilità, potresti usare jRDC2, che ha alcuni vantaggi (devi avere un tuo server fisico o un VPS)
Si farò qualche test anche con quella. Il server è in intranet, no problem per quello.
Grazie ancora
Luca
 

LUCA MANZATO

Member
Licensed User
Allora devo guardare quella libreria, che non conosco.

Se ne hai la possibilità, potresti usare jRDC2, che ha alcuni vantaggi (devi avere un tuo server fisico o un VPS)
Luca la libreria che sto usando è la MSSQL...

1725023814944.png
 
Top