Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    OpenSchema e Chiave tabella

    Scusate l'intrusione, oh sommi.....
    Sto utilizzando il metodo Openschema con ADO per gestire un database Access remoto.
    Tuttavia ho la necessità di capire qual'è il campo CHIAVE di ogni tabella.
    Ho provato a spulciare per bene tutte le informazioni trovate su
    http://www.aspcode.it/articoli/artic...how_art&idx=24 ma la chiave indice proprio non l'ho ricavata.
    A meno che non sia necessario fare un controllo incrociato su COLUMN_FLAGS, DATA_TYPE e IS_NULLABLE, cercando qualche - per me - oscura relazione......
    Tuttavia mi sembra un po' troppo complicato.
    Voi che dite???

    :master:
    (io perplessa....good night!)
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  2. #2
    Ciao, prova così :

    codice:
    const adSchemaPrimaryKeys=28
    
    With cn
        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\db2.mdb"
        .Open
    End With
    
    Set rs = cn.OpenSchema(adSchemaPrimaryKeys, Array(Empty, Empty,"Tabella2" ))
    
    While Not rs.EOF
       Response.Write rs("PK_NAME") & " " & rs("COLUMN_NAME") & "
    "
       rs.MoveNext 
    Wend
    Ciao sspintux

  3. #3
    Ciaosspintux, grazie della risposta!
    Quello che proponi tu è passare da ADO a OLEDB... E funziona di sicuro.
    Ma se io volessi (o dovessi) rimanere con ADO??
    :ignore:
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    29 invece di 28

  5. #5
    Niente da fare non va....

    Ho provato così:
    codice:
    const adSchemaPrimaryKeys=29
    Set cn = Server.CreateObject("ADODB.Connection")
    
    With cn
        .ConnectionString = "driver={Microsoft Access Driver (*.mdb)};dbq=" &_
    server.MapPath("\database\prova.mdb")
        .Open
    End With
    
    Set rs = cn.OpenSchema(adSchemaPrimaryKeys, Array(Empty, Empty,"tabella" ))
    
    While Not rs.EOF
       Response.Write rs("PK_NAME") & " " & rs("COLUMN_NAME") & "
    "
       rs.MoveNext 
    Wend
    
    rs.close 
    set rs=nothing 
    cn.Close
    Set cn = Nothing
    Ma mi dà errore alla riga in rosso...

    Tipo di errore:
    ADODB.Recordset (0x800A0CC1)
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
    /sitoprovaxgest/prova3.asp, line 15



    Quel rs("PK_NAME") non lo digerisce proprio!!!
    Con OLEDB invece funziona.... Il fatto è che io ho necessità di tenermi il Server.MapPath !

    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  6. #6
    io in sql server uso questo

    Recordset("campo").attributes = 16

    non so se con access possa andare....prova un pò......

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da Picciola
    Con OLEDB invece funziona.... Il fatto è che io ho necessità di tenermi il Server.MapPath !

    ecco... questo discorso non l'ho capito :master: cosa centra Server.MapPath?!?!??

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    per il 29 lascia perdere che ho detto una c...

  9. #9
    Per GENSOLE: Non ho capito come utilizzarlo!!!


    Per Willy: Si lo so, a volte mi esprimo proprio una SCHIFEZZA!.....
    Comunque si, l'ho fatto funzionare come serviva a me.... Eccolo:

    codice:
    const adSchemaPrimaryKeys=29
    Set cn = Server.CreateObject("ADODB.Connection")
    
    With cn
        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &_
    server.MapPath("\database\prova.mdb")
        .Open
    End With
    
    Set rs = cn.OpenSchema(adSchemaPrimaryKeys, Array(Empty, Empty,"tabella" ))
    
    While Not rs.EOF
       Response.Write rs("PK_NAME") & " " & rs("COLUMN_NAME") & "
    "
       rs.MoveNext 
    Wend
    
    rs.close 
    set rs=nothing 
    cn.Close
    Set cn = Nothing
    Sono brava??


    Una domanda.... Ho notato che se tolgo

    While Not rs.EOF
    e
    rs.MoveNext
    Wend


    lasciando solo
    Response.Write rs("PK_NAME") & " " & rs("COLUMN_NAME") & "
    "


    funziona lo stesso e mi da una sola riga....
    Puoi darmi una delucidazione? Perchè mi scorro tutto il Recordset? Per vedere se ci sono altre chiavi?
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  10. #10
    Un'altra domandina.....
    Innanzitutto BUONGIORNO!


    Con Openschema c'è modo di risalire alle relazioni tra le tabelle di Access?
    Chiedo troppo?

    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

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.