Newsgroup: it.comp.lang.visual-basic
Titolo: [Idea]: Creatore di stringhe Sql

Siccome è una vita che non posto,
me ne esco oggi con un idea stramba delle mie.
Sono alle prese con un database enorme,
e di conseguenza le stringhe sql sono belle lunghe.
Nello specifico , sto parlando di una insert.
Secondo voi, scrivere un piccolo tool che crea automaticamente la sintassi 
corretta di lunghe stringhe sql
puo' essere proficuo?
Mi spiego:
Nel form, in un campo di testo si inseriscono i nomi dei campi del db, 
divisi da una virgola.
Nel secondo campo di testo, in ordine si inseriscono i nomi di var che 
contengono i valori dei campi.
Si preme ok, e il tool restituisce la stringa Sql , magari cià caricata in 
memoria, poi si aggiunge a mano il nome della tabella sulla quale fare 
l'operazione.
Chiedo: secondo voi, sarebbe utile, a livello lavorativo quando si ha a che 
fare spesso con insert & upd molte lunghe?
Akuma. 

 fare spesso con insert & upd molte lunghe?
Non è niente di particolare da fare, nel senso tu fai scegliere la tabella
all'inizio, poi in base a questo ti fai 
SELECT * FROM TABELLA
E ciclando sui field ti aggiungi gli elementi ad una collection (ad
esempio), eventualmente prevedi tramite delle check box i campi su cui vuoi
lavorare.
A questo punto prendi una grid e metti nelle colonne i tuoi campi
selezionati (pescandoli dalla collection).
Nell righe poi metterai tu i valori.
Alla fine cicli sui righi e ti crei le stringhe sql.
Unica cosa devi stare attento alle formattazione e ripuliture dei campo (ad
esempio integer solo numeri, date nel formato giusto, stringhe con '
trasformato in '' ecc.)
Non ti conviene caricare su una griglia un recorset e fare una cosa del
genere?
Alla Load
DbArchivi.BeginTrans'connessione già aperta
RsArchivi.Source = "SELECT campi FROM tabella"
RsArchivi.Open , , adOpenStatic, adLockOptimistic
Set Grid1.DataSource = RsArchivi
e all'uscita:
  risp = MsgBox("Vuoi salvare i dati?", vbQuestion + vbYesNo, NOMEPRG)
  If risp = vbYes Then
      RsArchivi.UpdateBatch
      DbArchivi.CommitTrans
  Else
    RsArchivi.CancelUpdate
    DbArchivi.RollbackTrans
  End If
Se ti serve solo per un input stile access dovrebbe andarti bene


In VB6?
Allora, ti parlo per esperienza poichè usiamo un framework con delle classi 
che fanno proprio questo: specifichi nelle varie proprietà i campi, le 
condizioni, il tipo di query ecc e loro ti costruiscono la query.
La cosa se non è studiata più che bene e con po' di cognizione sulle varie 
sfaccettature dell'SQL (che, nota, non è mai standard!) si rischia di 
perdere solo tempo e di fare oggetti che funzionano un po' si e un po' no.
Se fatte bene queste classi *potrebbero* portare a un codice più chiaro, 
anche se il loro scopo sarebbe solo quello di alzare il livello di 
astrazione rendendo il codice indipendente dal motore db che sta sotto.
Conviene?
Dipende da quello che vuoi ottenere e dalla complessità di quello che 
vorresti semplificare.
Ciao 

 puo' essere proficuo?
Per fare allenamento, si.
Come tool, è inutile riscrivere una cosa che già hai.
Se il db è Access, hai la possibilità di farti le query (compreso anche 
l'inserimento o l'update) in qbe, poi clicchi su "SQL" e vedi la stessa 
cosa in SQL.
In Sql-Server, è ancora più semplice: Query Analyzer, tasto destro-> 
Crea Script di Insert.
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 Crea Script di Insert.
Anche VB2005 express (!!!) ha un eccellente query editor visuale...
Davvero comodissimo.
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
NUOVISSIMO SITO!!! The Total Site 4 : 
http://www.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS 

 Alberto
Andrea

Nel suo scritto precedente, Andrea Raimondi ha sostenuto :

Sono ben cosciente che ne esistono tanti.
Però, nello specifico:
- Access è il più diffuso, ed è quello che 'implicitamente' in tanti 
citano come 'db' in questo NG. Uno dei motivi è che è gratuito.
- Sql-Server è quello scelto da MS per la distribuzione congiunta con 
VisualStudio, è referenziato parecchio in MSDN, quindi può essere 
considerato come il dbms server di riferimento per gli sviluppatori di 
VB. Uno dei motivi è che ne esiste una versione 'quasi' completa 
gratuita.
- MySql è discretamente diffuso, ma molto poco documentato. Carente 
come Provider, soffre anche la sfiga di non essere gratuito (tranne da 
php o Gnu, ma non saremmo in tema).
- DB/2 è interessante, ma un attimino poco diffuso come dbms di 
appoggio per applicazioni in vb. Non parliamo di costi di licenza...
- Interbase, Postgres, e altri... non li conosco se non di nome, ma mi 
auguro che uno strumento di generazione query esista anche per quelli.
Ciao
Alberto (un ex di FoxPro, per inciso)


 Alberto (un ex di FoxPro, per inciso)
Andrea

 abbia cose simili... ma non lo conosco a fondo.
In Query Analyzer, tasto destro e genera query.
Poi, è ovvio che ti genera la sintassi utilizzando dei segnaposti dove 
tu dovrai poi concatenare le stringhe con i valori da inserire (che se 
derivano da variabili dovrai opportunamente formattare), ma il grosso è 
fatto.
Anche in Access, dove non mi sono mai studiato la sintassi, quando devo 
scrivere qualcosa la abbozzo in qbe, poi mi visualizzo il 
corrispondente Sql e lo copioincollo in vb.
Ciao
Alberto


 Alberto
Andrea