Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Recordset che non acceta gli alias

    Ho uno strano problema.
    Mi creo un recordset tramite una query su Oracle in cui certi campi o ragguppamenti sono identificati da un alias all'interno del codice sql.
    Se creo il mio recordset con cursor e locktype a 3, 3 mi permette di fare il .recordcount ma non mi identifica gli alias.
    Se invece utilizzo i cursor 0 o 1 o 2 mi permette di identificare gli alias ma non mi fa il .recordcount che risulta sempre a -1.

    Questo è il codice di esempio:

    sql = "SLECT CAMPO1 AS mio_alias FROM TABELLA1 WHERE CAMPO1='xxxx';"
    'Creo l'oggetto recorset
    Set rs = Server.CreateObject("ADODB.Recordset")
    'Eseguo la query sul database
    rs.Open sql, Conn, 3 , 3

    In questo caso l'istruzione di seguito funziona correttamente
    count = rs.RecordCount

    Ma non funziona
    variabile = rs("mio_alias")

    Mi da il seguente errore:

    ADODB.Recordset error '800a0cc1'
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
    /il_mio_script.asp, line 23

    Mentre se apro il mio cursore come
    rs.Open sql, Conn, 0 , 3
    funziona l'alias ma non il RecordCount che risulta uguale a -1.

    Come mai?
    Qualcuno sa dirmi perchè?

    Il tutto è installato sotto IIS 6 su un Windows Server 2003 R2.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di pip19
    Registrato dal
    Dec 2001
    Messaggi
    512
    non so perchè...

    ma hai provato ad usare questa stringa?

    rs.field("alias").value

  3. #3
    Mi va in errore.

    Errore di run-time di Microsoft VBScript error '800a01b6'

    Proprietà o metodo non supportati dall'oggetto: 'Field'

    Le ho provate tutte.
    Tra l'altro, in un altro server sempre con Win 2003 R2 funziona benissimo.

    Non vorrei fosse un problema di ODBC, ma non riesco a capire come risolverlo.

  4. #4

    ..

    secondo me c'è un errore in sql invece..
    Prova così:

    Codice PHP:
    sql "SELECT Count(Citta) as contatore, CAMPO1 AS mio_alias FROM TABELLA1 WHERE CAMPO1='xxxx' GROUP BY CAMPO1 " 
    'Creo l'
    oggetto recorset
    Set rs 
    Server.CreateObject("ADODB.Recordset")
    'Eseguo la query sul database
    rs.Open sql, Conn, 3 , 3

    count = rs("contatore")
    variabile = rs("mio_alias")

    Response.Write "variabile:"& variabile & "
    count:"&count 
    Per il vostro piacere di navigare
    nuovemodelle.com
    Quando cominceranno a capirmi mi avranno già programmato...

  5. #5
    Grazie Deio,

    ma il codice SQL invece è a posto perchè facendolo eseguire direttamente sul database funziona egregiamente.
    Il codice sql riportato qui è solo un esempio.
    Ecco se vuoi il codice originale che faccio girare in questo caso:

    SELECT CAST(FIERI.VIEW_ALL_TBLY2KRECORD1TMP.OWNERGUID AS VARCHAR(250)) AS OWNERGUID,
    CAST(FIERI.VIEW_ALL_TBLY2KRECORD1TMP.RECORD01GUID AS VARCHAR(250)) AS RECORD01GUID,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.DAY,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.MONTH,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.YEAR,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.OWNERTYPEID,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.OWNERPROCESS,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.RECICLED,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.PROTOCOLID,
    CAST(FIERI.VIEW_ALL_TBLY2KRECORD1TMP.EVENTSYSGUID AS VARCHAR(250)) AS EVENTSYSGUID,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.IDENTIFICATIONNUMB ER,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.SCHEME,
    CAST(FIERI.VIEW_ALL_TBLY2KRECORD1TMP.COLOUREDMARKG UID AS VARCHAR(250)) AS COLOUREDMARKGUID,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.COLOURBACKGROUDID,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.COLOURFOREGROUNDID ,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.COLOUREDIDENTIFICA TION,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.ITALIANNAME,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.ENGLISHNAME,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.SCIENTIFICNAME,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.SPECIESREPORTED,
    CAST(FIERI.VIEW_ALL_TBLY2KRECORD1TMP.PLACECODEGUID AS VARCHAR2(255)) AS PLACECODEGUID,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.PLACETYPE,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.PLACETYPEID,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.PLACENAME,
    ROUND(FIERI.VIEW_ALL_TBLY2KRECORD1TMP.DISTANCE, 2) AS DISTANCE,
    ROUND(FIERI.VIEW_ALL_TBLY2KRECORD1TMP.DIRECTION, 2) AS DIRECTION,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.ELAPSEDTIME,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.EPERINGINGPLACECOD EIA,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.NOMECOMUNE,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.NOMEPROVINCIA,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.COUNTRYNAMEEDB,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.IDCENTROIDE,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.PROCESSINGDATE,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.CHECKINGDATE,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.PUBLISHINGDATE,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.FILLER,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.MODIFIED,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.CHECKINGDUPLO
    FROM FIERI.VIEW_ALL_TBLY2KRECORD1TMP
    WHERE FIERI.VIEW_ALL_TBLY2KRECORD1TMP.SCHEME ='IAB'
    AND FIERI.VIEW_ALL_TBLY2KRECORD1TMP.RINGINGRECOVERIES = -1
    AND FIERI.VIEW_ALL_TBLY2KRECORD1TMP.FILLER = 1
    AND FIERI.VIEW_ALL_TBLY2KRECORD1TMP.SUBSTR_IDENT = '..'
    ORDER BY FIERI.VIEW_ALL_TBLY2KRECORD1TMP.IDENTIFICATIONNUMB ER,
    FIERI.VIEW_ALL_TBLY2KRECORD1TMP.PROCESSINGDATE;

    E' molto complesso come puoi vedere ma funziona egregiamente.

    Per cui non è un problema di SQL.

    Grazie comunque.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.