Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: SHAPE and ADO

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    11

    SHAPE and ADO

    Qualcuno mi sa dire, una volta costruito un recordset con le shape in VB, come si fa ad estrarre i dati dal recordset ? Grazie

  2. #2
    carichi un recordset con il campo che contiene lo shape, cosi'

    Set rstChild = rstParent("shape_field").Value

    a cui poi accedi come un qualunque recordset.

    tieni presente che la shape puo' essere nidificata, ma il ragionamento e' sempre lo stesso.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    11
    Guarda, sono incasinato con un problema di questo tipo. Io costruisco il mio recordset ADO così:

    SHAPE {select * from TABELLA1..M_DATI where ID_TIPO > 2}
    APPEND (( SHAPE { select str(ID)+'UNO' as IDVAL,* from TABELLA2..prodotti_1 where ID > 2 and ATT=1
    UNION select str(ID)+'DUE' as IDVAL,* from TABELLA2.. prodotti_2 where ID > 2 and F_ATTUALE=1
    UNION select str(ID)+'TRE' as IDVAL,* from TABELLA2.. prodotti_3 where ID > 2 and F_ATTUALE=1 }
    APPEND (
    { select str(ID_P)+'UNO' as IDNUM,* from TABELLA2..a_garanzie_UNO where ID > 2
    UNION select str(ID_P)+'DUE' as IDNUM,* from TABELLA2..a_gar_DUE where ID > 2
    UNION select str(ID_P)+'TRE' as IDNUM,* from TABELLA2..a_gar_TRE where ID > 2 }
    as Numbers RELATE IDVAL TO IDNUM))
    as Products RELATE ID TO ID_ASS)

    A questo punto, al posto dovrei fare una query di questo tipo:

    Select * from M_DATI WHERE ATT = 1 AND ID > 2 AND ID_TIPO > 2 ORDER BY ID

    In realtà non voglio fare questa query, ma vorrei sapere come sostituirla per riuscire ad ottenere i dati(gli stessi risultati della query) dal recordset ADO. Quali sono i metodi da utilizzare ?

    So che devo fare un ciclo su tutti i recordcount del recordset, per ciclarlo tutto, ma poi non so come inserire le condizioni della query. Grazie

  4. #4
    scusami, ma non ho capito cosa ti serve.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    11
    Praticamente voglio ottenere i risultati che otterrei con quella query o comunque con una query, però non voglio utilizzare la query.
    Voglio fare la mia richiesta al recordset costruito con la shape.
    Il recordset contiene tutti i dati del mio database al quale prima mi rivolgevo direttamente con le query. Ora invece al posto di una query mi rivolgo a questo recordset, e non so come "entrare" nel recordset e recuperare i campi che mi servono, cioè quelli che sono determinati dalle condizioni della query.
    So che se ho un oggeto del tipo
    Set MyObj = new ADO.recordset

    ottengo tutti i dati del recordset così:

    for i = 1 to MyObj.RecordCount
    for j = 0 to Myobj.FieldsCount
    ...qui trovo tutti i campi del recordset...
    MyObj(i).Name
    MyObj(i).Value
    Next j
    MyObj.MoveNext
    Next i

    ma a me appunto non serve recuperare tutti i campi, ma appunto determinatti campi che sono dati dalle condizioni della query che ogni volta dovrei fare

  6. #6
    ti diro', non e' che abbia capito molto... cmq...

    - lo shape restituisce anche lui un recordset
    - in fondo al recordset c'e' un campo che contiene il primo shape
    - a questo punto scarichi (con l'esempio che ti ho gia' fatto) il campo in un altro recordset
    - questo nuovo recordset (figlio) puo' essere ispezionato come un qualsiasi recordset, con il metodo che conosci
    - se sei in presenza di uno shape nidificato, in fondo al recordset figlio troverai un campo che contiene un ulteriore recordset (figlio del figlio) che tratterai come il primo figlio

    E' un po' macchinoso ma non difficile.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    11
    C'è una cosa che non mi è chiara..io ispeziono un recordset o un suo figlio e non ho problemi...ma come faccio a tenere per buoni solamente i campi che mi servono e a scartare gli altri ? I campi che mi servono sono appunto quelli che soddisfano le condizioni della mia query. Come faccio cioè a "tradurre" la mia query in una ispezione del recordset ? Perchè se devo prendere tutti i campi del recordset è chiaro che non ci sono problemi, basta ciclarlo tutto e tirar fuori i campi Name e Value. A me però servono solo i campi che soddisfano le condizioni della query. E' questa la difficoltà

  8. #8
    Basta non fare SELECT * ma SELECT lista_dei_campi, se stai parlando di campi. Se invece parli di records, basta aggiungere una WHERE.
    Se ho capito cosa intendevi.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    11
    Sì, ma io non devo fare la query. Io voglio proprio sostituire le varie clausole della query con la mia ispezione del recordset..
    Cioè, se nella query ho un where.... allora voglio "trasformare" questa condizione e tirare fuori dal recordset che ispeziono solo i dati che soddisfano le clausole della query

  10. #10
    e' chiaro che devi fare delle IF...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.