+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: visual basic e sql

  1. #1
    ketto85 non è in linea Scolaretto
    Post
    160

    visual basic e sql

    Ciao ragazzi ho bisogno di un vostro aiuto..ho un db con molte tabelle strutturate in modo diverso ma che hanno comunque tutte un campo "codice" dovrei effettuare una ricerca di record proprio in base al codice..per ora avevo trovato come metodo funzionante la clausola "UNION" però solo per due tabelle era abbastanza lunga..poi ho ottimizzato la procedura con visual basic in modo da non dover modificare la query tutte le volte che aggiungo una nuova tabella, in pratica la query si scrive da sola ogni volta che c'è una tabella nuova..però diventa del tipo

    Select [campo1],[campo2]
    from [tabella1]
    where [condizioni] UNION
    Select [campo1],[campo2]
    from [tabella2]
    where [condizioni] UNION
    Select [campo1],[campo2]
    from [tabella3]
    where [condizioni]
    .....


    E inserivo tutta la query in una variabile per poi farla eseguire direttamente da visual basic solo che ora la query è esageratamente lunga e non ci sta in una variabile di tipo stringa..me la taglia..come posso fare?

  2. #2
    mgm
    mgm non è in linea Scolaretto
    Post
    87
    Puoi dichiarare una variant o una stringa a lunghezza fissa XX As String * 2000.

    La Stringa a lunghezza fissa occupa il numero di byte indicato nella dichiarazione della variabile. La variant mi sembra occupi 22 byte aggiuntivi oltre il numero di byte della stringa.

    Ciao

  3. #3
    ketto85 non è in linea Scolaretto
    Post
    160
    ho provato in entrambi i modi ma non memorizza niente nella variabile..ho provato nel primo caso con:
    Dim SqlSearch As Variant
    e nel secondo caso con
    Dim SqlSearch As String * 2000
    ma in entrambi i casi non memorizza niente nella variabile..conosci un modo diverso per fare una ricerca su più tabelle?oppure un modo per eseguire la query e inserire i dati ottenuti in una tabella però tenendo conto che è in un ciclo tutte le volte che si inseriscono i dati in tabella non si devono cancellare i precedenti..avevo provato con SELECT * into "nome tabella" from ecc ecc ma ogni volta mi chiede di cancellare la tabella per poterla utilizzare..Comuqnue penso che il tipo variant abbia dei problemi con la concatenazione di stringhe..se concateno non mi memorizza niente..
    Ultima modifica di ketto85; 24-10-2005 20:10 

  4. #4
    L'avatar di _gas
    _gas non è in linea Scribacchino
    Luogo
    Italy
    Post
    1,345
    Quote Originariamente inviato da ketto85
    [........]
    E inserivo tutta la query in una variabile per poi farla eseguire direttamente da visual basic solo che ora la query è esageratamente lunga e non ci sta in una variabile di tipo stringa..me la taglia..come posso fare?
    Ma stai scherzando vero? Hai idea di quanti caratteri puoi immagazinare in una variabile stringa in VB? Oppure hai 512KB di ram? Ci deve essere uin errore da qualche parte...
    Ma vedo che hai aperto un'altra discussione sull'argomento (con una soluzione migliore), solo sappi che è quasi impossibile quello che hai scritto qui!
    si certo... e poi c'era la marmotta che confezionava la cioccolata...

  5. #5
    ketto85 non è in linea Scolaretto
    Post
    160
    io ti so dire solo che la mia query non ci sta tutta in una variabile stringa..ma non ce ne sta neanche metà..non riesco a trovare un metodo più efficiente..avevo pensato di eseguire la query e ogni volta inserivo i dati in una tabella..poi rieseguivo la query (come da ciclo) e inserivo gli altri dati trovati però non devo perdere i dati che c'erano già prima..

  6. #6
    L'avatar di _gas
    _gas non è in linea Scribacchino
    Luogo
    Italy
    Post
    1,345
    Ma *come* fai a dire che "non ci sta in una variabile stringa"? Ricevi un errore? Riscontri un troncamento (allora sarei curioso di sapere il numero di caratteri contenuti nella tua query approssimativamente)... non è per fare polemica sia chiaro, ma mi sembra molto strano, la causa potrebbe essere differente...
    si certo... e poi c'era la marmotta che confezionava la cioccolata...

  7. #7
    ketto85 non è in linea Scolaretto
    Post
    160
    dunque il numero preciso non te lo so dire ma saranno all'incirca una ventina di righe..me ne accorgo perchè dentro al ciclo ho messo un MsgBox che stampa ad ogni giro la query e vedo che cresce fino ai primi passaggi poi si tronca e anche se il ciclo continua la query non si modifica più e se la eseguo non me la accetta proprio perchè è incompleta..

  8. #8
    L'avatar di _gas
    _gas non è in linea Scribacchino
    Luogo
    Italy
    Post
    1,345
    La divisione in righe dipende dalla presenza di caratteri di ritorno, quindi ogni riga conta diverse decine di milioni di caratteri?
    E che significa che non la acetta? cioè hai provato a visualizzare il contenuto della stringa prima di eseguirla?
    si certo... e poi c'era la marmotta che confezionava la cioccolata...

  9. #9
    ketto85 non è in linea Scolaretto
    Post
    160
    si..dunque in pratica ho fatto anche questa prova..finche la query stava nella variabile, me la sono copiata e l'ho eseguita da sola e funzionava..se invece gli faccio fare un ciclo in più e vedo che si tronca, non la esegue più e mi ritorna un errore di esecuzione della query non specifica il motivo ma è chiaro che non la può eseguire perchè non è completa.

  10. #10
    L'avatar di _gas
    _gas non è in linea Scribacchino
    Luogo
    Italy
    Post
    1,345
    Allora, vedi che piano piano ci stiamo arrivando? Ti posso assicurare che non "è finito lo spazio nella variabile stringa", è impossibile a meno che tu non la abbia dichiarata a lunghezza fissa...
    probabilmente ci sarà un problema in un punto del codice (come concateni le stringhe?) e come risultato ottieni una stringa "troncata".
    Cmq avere una marea di UNION non è per nulla consigliabile! Utilizza l'altro metodo in ogni caso.
    si certo... e poi c'era la marmotta che confezionava la cioccolata...

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Discussioni simili

  1. [VB6] Ricerca nominativi in DB
    Da The Revolution nel forum Visual Basic 6
    Risposte: 13
    Ultimo Post: 01-04-2006, 13:51
  2. Visual Basic e SQL
    Da queen_live78 nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 08-12-2004, 14:39
  3. SQL e Visual Basic e ACCESS
    Da stefano_ nel forum Visual Basic 6
    Risposte: 7
    Ultimo Post: 24-02-2004, 16:51
  4. SQL e Visual Basic
    Da Tama nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 17-08-2003, 17:46

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi