Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    4

    Problemi in lettura tabella access

    Sto provando a scrivere le mie prime pagine ASP per la lettura di una tabella ma non riesco a capire come superare i seguenti problemi:

    con queste righe di codice

    8 Const adOpenForwardOnly = 0
    9 Const adLockReadOnly = 1
    10 Dim sql
    11 Dim conn, rs
    12 Set conn = Server.CreateObject("ADODB.Connection")
    13 conn.open "DRIVER=(Microsoft Access Driver (*.mdb));DBQ=C:\Inetpub\wwwroot\sitoprova\database \dbcase.mdb"
    14 sql = "SELECT codiceimmobile, comune FROM case"
    15 Set rs = Server.CreateObject("ADODB.RecordSet")
    16 rs.Open sql, conn, adOpenForwardOnly, adLockReadOnly

    ottengo il seguente errore:

    Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
    [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato.
    /lettura1.asp, line 13


    Se cambio la riga 13 con quest'altra

    13 conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\sitoprova\database\dbcas e.mdb"

    riesco apparentemente ad aprire la tabella ma ricevo quest'altro tipo di errore:

    Microsoft JET Database Engine (0x80040E14)
    Errore di sintassi nella proposizione FROM.
    /lettura1.asp, line 16

    Grazie in anticipo da un principiante

  2. #2
    questa la stringa di connessione in OLEDB (nettamente più veloce e funzionale)
    "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:...."

    questa la stringa di connessione standard
    "driver={Microsoft Access Driver (*.mdb)};dbq= C:..."

    notare parentesi graffe :P

    ---

    per il secondo problema...
    la tabella CASE esiste? i campi al suo interno sono scritti correttamente?

    ti consiglio di chiamare le tabelle con un suffisso (ad esempio table o tba, tanto da evitare problemi se scegli dei nomi particolari come WHERE o FROM che sono già utilizzati dall'applicazione... quindi la tua tabella potrebbe diventare table_case; questo anche per quanto riguarda i campi all'interno della tabella, sennò dopo un po' ti ritrovi a confondere campi che ci sono in più tabelle, come l'ID... chiamandoli quindi ad esempio case_comune, case_codiceimmobile)

    ovviamente è una scuola di pensiero, ve ne sono altre, io lavoro così.

    ---

    perchè poi utilizzi le due impostazioni
    8 Const adOpenForwardOnly = 0
    9 Const adLockReadOnly = 1
    settate in questa maniera. esigenze reali o uno script preconfezionato?

    ---

    infine un piccolo coniglio: consiglio di usare OLEDB poichè è maggiormente performante a parità di lavoro (quindi più veloce) anche se non su tutti i server sempre supportato (ma quello basta provare per vedere)

    inoltre per specificare la cartella dove si trova il DATABASE non ti consiglio di scriverla a mano...

    fai così

    conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("data
    base\dbcase.mdb")

    questo perchè finchè lavori sul server di casa nonc i sono problemi, ma se poi carichi il lavoro su un altro server il percorso potrebbe essere diverso.
    in questa maniera viene calcolato in relazione alla pagina dal quale esegui tale codice... (io ho immaginato che la pagina si trovasse nella cartella SITOPROVA)
    san imente saluta

    * http://simonecingano.it *

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    4
    Grazie Imente.
    E' tutto Ok

    Anche i consigli mi sembrano abbastanza buoni.

    mdc06

  4. #4
    punti di vista...

    magari trovane degli altri, così poi puoi decidere quali sono le vie che preferisci...

    buon apprendimento
    se serve aiuto siamo sempre qui [pure col caldo]
    san imente saluta

    * http://simonecingano.it *

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.