Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    come creo un'intera tabella

    ciao a tutti,
    premetto che lavoro in access.

    Se volessi creare da asp, con un'istruzione sql, una nuova tabella con i seguenti campi:

    id=contatore chiave primaria (che si auto incrementa)
    nome=campo testo
    num=campo numerico

    e poi vorrei sapere un'altra cosa.

    Avendo una tabella già fatta in access....c'è un istruzione per conoscere il numero di righe senza stampare nulla???

    grazie a tutti
    victor
    ----------------------

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao victor8872,

    ti posto un esempio (che non ho fatto io) con il quale puoi fare quello che ti serve
    codice:
    <%@ Language=VBScript %>
    
    <%
    ' impostiamo il path ed il nome del db da creare...
    path_db = "prova.mdb"
    
    ' creiamo l'oggetto ADOX e quindi eseguiamo la creazione del file database...
    Set objAdox = Server.CreateObject("ADOX.Catalog")
    objAdox.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(path_db)
    
    ' creiamo l'oggetto che ci permetterà di inserire una tabella nel db...
    Set objAdoxTable = Server.CreateObject("ADOX.Table")
    ' il nome della tabella...
    objAdoxTable.Name = "TabellaTest"
    ' inseriamo il campo Contatore...
    Set objAdoxColumn = Server.CreateObject("ADOX.Column")
    Set objAdoxColumn.ParentCatalog = objAdox
    With objAdoxColumn
    .Type = adInteger
    .Name = "CampoID"
    .Properties("Autoincrement") = True
    End With
    ' eseguiamo la creazione del campo Contatore...
    objAdoxTable.Columns.Append objAdoxColumn
    Set objAdoxColumn = Nothing
    
    ' aggiungiamo gli altri campi...
    objAdoxTable.Columns.Append "CampoTesto", adVarWChar, 255
    objAdoxTable.Columns.Append "CampoMemo", adLongVarWChar, 203
    objAdoxTable.Columns.Append "CampoNumerico", adInteger, 3
    objAdoxTable.Columns.Append "CampoData", adDate, 7
    objAdoxTable.Columns.Append "CampoSiNo", adBoolean, 11
    objAdoxTable.Columns.Append "CampoSoldi", adCurrency, 6
    
    ' impostiamo il campo contatore come chiave primaria...
    objAdoxTable.Keys.Append "PK_CampoID", 1, "CampoID"
    
    ' eseguiamo la creazione degli altri campi...
    objAdox.Tables.Append objAdoxTable
    
    Set objAdoxTable = Nothing
    Set objAdox = Nothing
    %>
    il file adovbs.inc lo trovi facilmente cercando con google... ad esempio qua lo puoi scaricare

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

    Re: come creo un'intera tabella

    Originariamente inviato da victor8872

    e poi vorrei sapere un'altra cosa.

    Avendo una tabella già fatta in access....c'è un istruzione per conoscere il numero di righe senza stampare nulla???
    mi ero scordato la seconda domanda.
    senza stampare nulla dopo che hai eseguito la query e popolato il recordset puoi sapere il numero di record con
    codice:
     
    TuoRecordset.RecordCount

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    intanto grazie mille

    ciao e grazie per la tua esaustiva risposta.

    visto che ci sono ti chiederei anche un parere sul questo codice che mi consente di creare un db da zero e creare delle tabelle.

    Visto che sei cosi bravo vorrei che tu gli dessi un'occhiata e mi dici che ne pensi rispetto al tuo.

    L'ho provato e in effetti funziona l'unica cosa che non ho capito come si fa è il campo memo


    <%
    Set cat = CreateObject("ADOX.Catalog")
    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("carrello2.mdb")
    cat.Create connStr
    Set cat = nothing



    dim stringa_conn
    stringa_conn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("carrello2.mdb")
    dim objconn
    set objconn = server.createobject("adodb.connection")
    objconn.open stringa_conn


    'real=numerico intero
    'char=campo testo
    'counter=contatore
    'counter primary key=contatore chiave primaria

    dim sql
    sql="create table categorie (id counter primary key, nome_categorie char(255), num real)"



    dim objrs
    set objrs=server.createobject("adodb.recordset")
    objrs.open sql, stringa_conn


    %>



    Per quanto riguarda la seconda domanda
    non ho capito bene la tua risposta.

    Correggimi se sbaglio:
    -creo connessione
    -creo l'oggetto recordset che si chiama rs ad esempio
    -e poi faccio response.write rs.RecordCount??
    -ma non creo un'istruzione sql ne creo un ciclo do while

    Ancora grazie mille e soprattutto complimenti!
    victor
    ----------------------

  5. #5
    Per il campo memo devi semplicemente fare così:
    codice:
    <% 
    Set cat = CreateObject("ADOX.Catalog") 
    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("carrello2.mdb") 
    cat.Create connStr 
    Set cat = nothing 
    
    
    
    dim stringa_conn 
    stringa_conn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("carrello2.mdb") 
    dim objconn 
    set objconn = server.createobject("adodb.connection") 
    objconn.open stringa_conn 
    
    
    'real=numerico intero 
    'char=campo testo 
    'counter=contatore 
    'counter primary key=contatore chiave primaria 
    'memo=campo memo
    dim sql 
    sql="create table categorie (id counter primary key, nome_categorie char(255), num real, descrizione memo)" 
    
    
    
    dim objrs 
    set objrs=server.createobject("adodb.recordset") 
    objrs.open sql, stringa_conn 
    
    
    %>

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183
    grazie mille
    victor
    ----------------------

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.