Credevo di fare un controllo tra due tabelle, invece mi sono sbagliato di grosso...(scusa milio, la tua query non l'ho provata perchè mi sembra che adesso non va più bene, però me la conservo :-D )
Devo fare si un controllo tra due tabelle, ma due tabelle di due database diversi..
Scusatemi ma al momento pensavo bastasse la query normale tra due tabelle.
Passo dei dati da tabella mysql a tabella sqlite
i dati sqlite li ricavo così:
sql = "SELECT * FROM clienti"
MyRS = MODMain.$connsqlite.Exec(sql)
i dati mysql li ricavo così:
sql = "SELECT * FROM clienti"
MyRS1 = MODMain.$connmysql.Exec(sql)
Adesso devo trovare i clienti che mancano in MyRS1 da MyRS.
Grazie
PUBLIC FUNCTION TrovaDiff() AS Result
DIM IdClienti AS String
DIM sql AS String
DIM MyRS AS Result
DIM Nx AS Integer
'Tabella dove cerchi i clienti mancanti
sql = "SELECT Id FROM clienti"
MyRS = MODMain.$connmysql.Exec(sql)
IdClienti = "("
FOR Nx = 0 TO MyRS.Max
IdClienti &= MyRS["Id"] & ","
NEXT
IdClienti = Left(IdClienti, -1) & ")"
'Tabella completa
sql = "SELECT Id FROM clienti WHERE Id NOT IN " & IdClienti & ";"
RETURN = MODMain.$connsqlite.Exec(sql)
END
Comunque secomdo me se vuoi la copia esatta delle due tabelle ti conviene cancellare e ricopiare i dati. Anche perche' tu ti preoccupi solo di inserire nuovi clienti, ma se poi vai a variare qualche dato nell'anagrafica?
Grazie Milio, funziona alla grande :ok:
PUBLIC FUNCTION TrovaDiff() AS Result
DIM IdClienti AS String
DIM sql AS String
DIM MyRS AS Result
DIM Nx AS Integer
'Tabella dove cerchi i clienti mancanti
sql = "SELECT Id FROM clienti"
MyRS = MODMain.$connmysql.Exec(sql)
IdClienti = "("
FOR Nx = 0 TO MyRS.Max
IdClienti &= MyRS["Id"] & ","
MyRS.movenext ' CI MANCAVA SOLO QUESTO
NEXT
IdClienti = Left(IdClienti, -1) & ")"
'Tabella completa
sql = "SELECT Id FROM clienti WHERE Id NOT IN " & IdClienti & ";"
RETURN = MODMain.$connsqlite.Exec(sql)
END
Ci mancava solo "MyRS.movenext" Grazie mille