Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    152

    ADODB e campo DATE: Query

    Ciao a tutti,

    sto utilizzando la classe DALayer che allego in fondo per la chiamata dei recordset.

    Ho un problema con le query che richiamino tabelle che abbiano dei campi DATE o DATETIME in un DB MySql.
    Infatti queste query my restituiscono recordset vuoti se le richiamo con la funzione RetrieveRS(SQL).
    Se invece rimuovo il campo DATE dalla tabella ecco che la query viene svolta correttamente ed il recordset mi viene restituito con i valori richiesti.


    ------------------------ IL MIO CODICE :
    <%
    Sql= "SELECT id, campodata From Tabella"

    ' CODICE NON FUNZIONANTE

    Set Rs = Conn.RetrieveRS(Sql)

    ' ALTERNATIVA FUNZIONANTE CHE NON VORREI USARE
    Set objConn = Server.CreateObject("ADODB.CONNECTION")
    objConn.Open ConnStr
    Set RS = Server.CreateObject("ADODB.RecordSet")
    Rs.Open Sql, objConn
    %>

    Ho come l'impressione che il settaggio dei cursori dia problema con il campo DATE ma non ho trovato documentazione che me lo confermi ... voi ne sapete qualcosa ???

    Ciao e grazie

    Eas


    -------------------------LA CLASSE INCLUSA:

    <%
    Public Const adCmdText = 1
    Public Const adUseClient = 3
    Public Const adLockBatchOptimistic = 4
    Public Const adOpenStatic = 3
    Class DALayer
    '--------------------------------------------------------------------------
    ' This Script Provides A Set Of Common Functions Used
    ' With ADO to Access Data And Execute Queries.
    ' Methods:
    ' RetrieveRS [Returns a Disconnected ADO Recordset]
    ' Inputs:
    ' sSQL-String-Statement to be Executed
    ' ExecuteQuery [Executes a SQL Query]
    ' Inputs:
    ' sSQL-String-Statement to be Executed
    ' SaveRS [Batch Updates a Record Set]
    ' Inputs:
    ' objRS-RecordSet used to update database
    '--------------------------------------------------------------------------

    '--------------------------------------------------------------------------
    'Connection String Property
    '--------------------------------------------------------------------------
    Public sConn

    Public Property Let ConnectionString(strData)
    sConn = strData
    End Property

    Public Property Get ConnectionString()
    ConnectionString = sConn
    End Property

    '--------------------------------------------------------------------------
    ' ExecuteQuery() Executes a Query Returning No Records
    '--------------------------------------------------------------------------
    Public Sub ExecuteQuery(sSQL)
    Dim objConn
    Set objConn = Server.CreateObject("ADODB.CONNECTION")
    objConn.ConnectionString = sConn
    objConn.Open
    objConn.Execute sSQL, , adCmdText
    Set objConn = Nothing
    End Sub

    '--------------------------------------------------------------------------
    ' RetrieveRS() Executes a Query & Retrieves a Disconnected Recordset
    '--------------------------------------------------------------------------
    Public Function RetrieveRS(sSQL)
    Dim objConn, objRS
    Set objConn = Server.CreateObject("ADODB.CONNECTION")
    Set objRS = Server.CreateObject("ADODB.RecordSet")
    objConn.ConnectionString = sConn
    objConn.Open
    objRS.CursorLocation = adUseClient
    objRS.CursorType = adOpenStatic
    objRS.LockType = adLockBatchOptimistic
    objRS.Open sSQL, objConn, , , adCmdText
    Set objRS.ActiveConnection = Nothing
    Set RetrieveRS = objRS
    Set objRS = Nothing
    Set objConn = Nothing
    End Function

    '--------------------------------------------------------------------------
    ' SaveRS() Updates DataSource Using a Disconnected Recordset
    '--------------------------------------------------------------------------
    Public Sub SaveRS(objRS)
    Dim objConn
    Set objConn = Server.CreateObject("ADODB.CONNECTION")
    objConn.ConnectionString = sConn
    objConn.Open
    Set objRS.ActiveConnection = objConn
    objRS.UpdateBatch
    Set objRS = Nothing
    Set objConn = Nothing
    End Sub
    End Class
    %>

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    152
    Online ho trovato la seguente documentazione che ripropone un bug molto simile ma non è esattamente il caso mio:

    http://bugs.mysql.com/bug.php?id=13001

    Non so come fare:
    ho provato a cancellare i campi con valore di tipo DATE e la query effettuata con la funzione RetrieveRS() funziona correttamente. se invece aggiungo di nuovo il campo non mi restituisce risultati.

    Se provo invece la query su phpMyAdmin sia con campo DATE che senza funziona correttamente.

    Qualcuno ha una anche minima ideuzza su come risolvere ?

    grazie e ciao

    Eas

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    152
    Risolto ... da solo ... comunque per chi dovesse avere lo stesso problema vi dico quale è la soluzione:

    non impostate mai su MySql il valore di defaul delle date a 0000-00-00 ... (come si poteva evincere anche dal link che ho inviato). Preferite piuttosto il NULL come predefinito ... almeno ADO non va nel panico !!

    Devo capire se faccio richieste troppo facili o troppo difficili ... perchè me le risolvo sempre da solo

    Ciao e grazie a chiunque abbio perso i 5 minuti per capire ...

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.