Italian Problema con la Macro &

Lello1964

Well-Known Member
Licensed User
Longtime User
Ciao,

ho un problema con la macro &

ho un cursor esempio :

Dim txt As String
txt = "SELECT id,descrizione,prezzo FROM " & Main.DBTableNameArticol & " where id=1"
Cursor_art = Main.SQL1.ExecQuery(txt)

' ho un array che contiene le definizioni dei campi del cursore es:

dim campi(3) as string
dim DubQuote as string =chr(34)

campo(1)="Cursor_corpo.GetString(" & DubQuote & "id" & DubQuote &")"
campo(2)="Cursor_corpo.GetString(" & DubQuote & "descrizione" & DubQuote &")"
campo(3)="Cursor_corpo.GetString(" & DubQuote & "prezzo" & DubQuote &")"

' ho bisogno di leggere il valore di un campo del cursore definendolo in una variabile.

Dim cur,contenuto As String
cur = campo(2)
contenuto ur1= &cur

'''''''''''''''''''''''''''''''''''
il codice sopra riportato è un esempio, non sono sicuro che sia esatto.
Il mio problema è che la variabile contenuto, che dovrebbe riportare il valore del campo descrizione , in realtà mi riporta il nome del campo cioè "descrizione".

Potete dirmi dove ho sbagliato ?

Credo che la funzione & non sia funzionante con i cursor.

grazie.

Raffaele

n.b.
spero che le righe del codice siano sufficienti per spiegare il problema.
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Ciao,
non mi sono chiare le seguenti istruzioni:

B4X:
campo(1)="Cursor_corpo.GetString(" & DubQuote & "id" & DubQuote &")"
campo(2)="Cursor_corpo.GetString(" & DubQuote & "descrizione" & DubQuote &")"
campo(3)="Cursor_corpo.GetString(" & DubQuote & "prezzo" & DubQuote &")"
Metti tutto in array ? a che pro ?
 
D

Deleted member 103

Guest
Ciao Lello1964,

in questo modo dovrebbe funzionare. ;)
B4X:
campo(1)=Cursor_corpo.GetString("id")
campo(2)=Cursor_corpo.GetString("descrizione")
campo(3)=Cursor_corpo.GetString("prezzo")

Ciao,
Filippo
 

Lello1964

Well-Known Member
Licensed User
Longtime User
Riformulo la domanda

Grazie per la risposta.

Forse la mia domanda non era chiara, vi faccio un esempio diverso :

Sub Activity_Create(FirstTime As Boolean)
'Activity.LoadLayout("Layout1")
Dim sqlqry As String
' If File.ExternalWritable Then TargetDir = File.DirDefaultExternal Else TargetDir = File.DirInternal
File.Copy(File.DirAssets, DBFileName, DBFileDir, DBFileName)
sql1.Initialize(DBFileDir, DBFileName, True)
sqlqry="insert into prova values(1,'prova',10)"
sql1.ExecNonQuery(sqlqry)
sqlqry="insert into prova values(2,'prov 3a',22)"
sql1.ExecNonQuery(sqlqry)
'
sqlqry="select * from prova"
Dim cur As Cursor
Dim a,b,c As String
cur=sql1.ExecQuery(sqlqry)
cur.Position=0
' comando diretto
c="descrizione" ' setto il campo che mi occorre
a=cur.GetString(c )
' mi restituisce msgbox con "prova"
'
Msgbox(a,"esatto")
'
a="cur.GetString(" & Chr(34) & c & Chr(34) & ")"
b="" & a
Msgbox(b,"")
' dovrebbe restituire "prova" ma restituisce cur.GetString("descrizione")
End Sub

***********
Non vi stò a spiegare il perchè della mia richiesta, troppo lungo il discorso.

Programmando in Visual FoxPro, la & mi consente di sosituire un parte di codice con una variabile :

esempio

a=" for i =1"

&a to 10

è come se avessi scritto
for i = 1 to 10

questo è quello che mi serve come macro sostituzione.

grazie


Raffaele
 
Top