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

    Quale provider per Access?

    Salve ragazzi ho un problema con un applicazione web in vb.net.
    Quando lo eseguo in debug una certa select (Access) funziona correttamente, mentre se la eseguo sul server nella quale risiede non mi restituisce niente...
    Se la eseguo dall'editor di Access funziona correttamente.
    Ora che il problema sia il motore che esegue la query risiedente sul server??
    Boh non capisco...
    Uso il classico Microsoft.Jet.OLEDB.4.0 e il file mdb risiede nella stessa cartella dell'applicazione.
    La cosa è "indebuggabile" e non saprei da dove iniziare visto che il problema si riscontra solo su questa select:

    Codice PHP:
    SELECT sum(orefrom tabella WHERE progettista=10 and data_consuntivo like '06/02/2008'
    Non dovrebbe essere un errore sql visto che ho provato in vari modi (invertendo data, like,= ecc...)...
    Grazie.

  2. #2
    prova ad utilizzare i parametri invece di appiccicare la data sotto forma di stringa
    es.
    codice:
    tuocommand.commandtext = "SELECT * FROM tab WHERE campo = ?";
    tuocommand.parameters.add("?", OledbType.Date).value = datetime.parse("02/05/1970");
    Saluti a tutti
    Riccardo

  3. #3
    Originariamente inviato da riccardone
    prova ad utilizzare i parametri invece di appiccicare la data sotto forma di stringa
    es.
    codice:
    tuocommand.commandtext = "SELECT * FROM tab WHERE campo = ?";
    tuocommand.parameters.add("?", OledbType.Date).value = datetime.parse("02/05/1970");
    Innanzitutto grazie mille per il suggerimento.
    Ti chiedo scusa ma non capisco una cosa io l'istruzione sql la salvo in una stringa e poi la associo ad un oledb command così:
    Codice PHP:
    cmdsql = New Data.OleDb.OleDbCommand(stringaSqlconnesione)
    rs cmdsql.ExecuteReader() 
    In questo caso come faccio ad aggiungere il parametro "?" ?
    Cioè come faccio a scrivere la seconda riga che mi hai suggerito?

  4. #4
    prima di eseguire il command scrivi
    codice:
    cmdsql.parameters.add("?", OledbType.Date).value = datetime.parse("02/05/1970");
    Saluti a tutti
    Riccardo

  5. #5
    Originariamente inviato da riccardone
    prima di eseguire il command scrivi
    codice:
    cmdsql.parameters.add("?", OledbType.Date).value = datetime.parse("02/05/1970");
    Grazie mille, funziona!
    Ma come mai se posso chiederlo?

  6. #6
    Perche' il formato della data dipende dalle impostazioni del sistema operativo e/o del server (o di access nel tuo caso). Quindi, possono variare da un computer all'altro.
    PEr questo, usando i parametri nelle tue query puoi disinteressarti di questa problematica perchè ci pensa il dataprovider a utilizzare il formato corretto a seconda delle impostazioni del server.
    La regola ferrea da non disattendere mai è di usare i parametri per tutti i valori che usi nelle query.
    Saluti a tutti
    Riccardo

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.