Collegamento tabelle via ODBC

Anonimo
2013-09-22T18:18:58+00:00

Ciao,

possibile che per aprire una tabella formata da due record connessa via ODBC a SQL Server ci impiega 7 secondi mentre la stessa tabella collegata tramite progetto adp solo la prima volta che si apre ci impiega circa un secondo e successivamente la sua apertura è quasi istantanea?

C'è qualcuno che cortesemente mi fa luce se è un fatto normale o dipende da un qualcosa che non ho previsto o sbagliato?

Vladimiro.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

52 risposte

Ordina per: Più utili
  1. Anonimo
    2013-09-28T09:02:45+00:00

    Ciao Mancini,

    Ma lo hai creato un database tuo?

    Nel momento in cui mi creo come prima volta un file dsn, non ho nessun database mio in SQL Server. E' proprio quello che cercavo di spiegare a Cinzia!

    Comunque in seguito li ho creati in SQL Server ma non è cambiato nulla rispetto alla connessione.

    Veniamo a noi.

    Ho ripulito SSMS dai miei database e tabelle, ho fatto quello che mi hai scritto creando il database Prova03 in SQL, ho collegato via ODBC il file dsn (già creato in precedenza) avendo la seguente situazione:

    https://skydrive.live.com/?cid=dfdfb766aa86f9d8#!/view.aspx?cid=DFDFB766AA86F9D8&resid=DFDFB766AA86F9D8%21201&app=Word

    a questo punto cosa debbo fare? Come mi creo il db lato client?

    Vladimiro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-09-28T05:05:40+00:00

    se non hai ancora un tuo DB fai cosi  ( almeno siamo sicuri )

    • ManagementStudio
    • Nuova query
    • incolli integralmente il testo che scrivo sotto
    • Esegui

    Ti creera un DB di nome  "Prova03" con

    •  2 tabelline
    •  1 vista  ( Non Query )
    •  1 relazione
    •  Poche righe di dati

    il testo da incollare

    --  Usa il Master  SOLAMENTE per creare il Tuo DB

    USE [master]

    GO

    --  crea il DB

    CREATE DATABASE [Prova03]

    GO

    -- adesso usa il tuo DB  ( Prova03 )

    USE [Prova03]

    GO

    -- Creiamo una tabella Clienti

    CREATE TABLE [dbo].[Clienti](

    [ClId] [int] IDENTITY(1,1) NOT NULL,

    [ClNome] nvarchar NULL,

    [ClVia] nvarchar NULL,

    [ClCitta] nvarchar NULL,

    CONSTRAINT [PK_Clienti] PRIMARY KEY CLUSTERED

    (

    [ClId] ASC

    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

    ) ON [PRIMARY]

    GO

    -- Crea la tabella Ordini

    CREATE TABLE [dbo].[Ordini](

    [OrId] [int] IDENTITY(1,1) NOT NULL,

    [OrCl] [int] NULL,

    [OrdineN] nchar NULL,

    [OrProd] nchar NULL,

    [OrQuan] [int] NULL,

    CONSTRAINT [PK_Ordini] PRIMARY KEY CLUSTERED

    (

    [OrId] ASC

    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

    ) ON [PRIMARY]

    GO

    -- Creiamo una relazione

    ALTER TABLE [dbo].[Ordini]  WITH CHECK ADD  CONSTRAINT [FK_Ordini_Clienti] FOREIGN KEY([OrCl])

    REFERENCES [dbo].[Clienti] ([ClId])

    GO

    ALTER TABLE [dbo].[Ordini] CHECK CONSTRAINT [FK_Ordini_Clienti]

    GO

    --  inserisce un po di dati in Clienti

    SET IDENTITY_INSERT [dbo].[Clienti] ON

    INSERT [dbo].[Clienti] ([ClId], [ClNome], [ClVia], [ClCitta]) VALUES (1, N'Fiat', NULL, N'Torino')

    INSERT [dbo].[Clienti] ([ClId], [ClNome], [ClVia], [ClCitta]) VALUES (2, N'Alfa', NULL, N'Arese')

    INSERT [dbo].[Clienti] ([ClId], [ClNome], [ClVia], [ClCitta]) VALUES (3, N'Renault', NULL, N'Lion')

    INSERT [dbo].[Clienti] ([ClId], [ClNome], [ClVia], [ClCitta]) VALUES (4, N'Ferrari', NULL, N'Ravenna')

    SET IDENTITY_INSERT [dbo].[Clienti] OFF

    --  inserisce un po di dati in Ordini

    SET IDENTITY_INSERT [dbo].[Ordini] ON

    INSERT [dbo].[Ordini] ([OrId], [OrCl], [OrdineN], [OrProd], [OrQuan]) VALUES (1, 1, N'12        ', N'Punto     ', 10)

    INSERT [dbo].[Ordini] ([OrId], [OrCl], [OrdineN], [OrProd], [OrQuan]) VALUES (2, 4, N'25        ', N'512       ', 7)

    INSERT [dbo].[Ordini] ([OrId], [OrCl], [OrdineN], [OrProd], [OrQuan]) VALUES (4, 3, N'74/b      ', N'Megane    ', 20)

    INSERT [dbo].[Ordini] ([OrId], [OrCl], [OrdineN], [OrProd], [OrQuan]) VALUES (5, 1, N'78        ', N'Qubo      ', 12)

    SET IDENTITY_INSERT [dbo].[Ordini] OFF

    GO

    -- Creiamo una Vista

    CREATE VIEW [dbo].[View_1]

    AS

    SELECT

    dbo.Clienti.ClNome,

    dbo.Ordini.OrdineN,

    dbo.Ordini.OrProd,

    dbo.Ordini.OrQuan

    FROM

    dbo.Clienti

    LEFT OUTER JOIN

    dbo.Ordini

    ON

    dbo.Clienti.ClId = dbo.Ordini.OrCl

    GO

    -- Finito

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-09-28T05:00:43+00:00

    ...... e mi ritrovo la seguente schermata:

    https://skydrive.live.com/#!/view.aspx?cid=DFDFB766AA86F9D8&resid=DFDFB766AA86F9D8%21197&app=Word

    Debbo selezionare uno dei database predefiniti di SQL oppure "Associa file di database" dove non accetta però nessun nome scritto? ......

    Sto perdendo un po il controllo del tutto !!!!

    su quella schermata che mostri sopra fai cosi:

    https://skydrive.live.com/#cid=A571D4F7DF332873&id=A571D4F7DF332873%21129&v=3

    anche se non è sbagliato come fai te io abbandonerei l' Upsize

    • Creare un DB con ManagementStudio
    • Pannello di controllo  crei il dsn
    • Access connetti le tabelle al DB usando il dns

    adesso devo andare

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-09-27T23:16:51+00:00

    Ciao Cinzia,

    oltre a quello che ho scritto al post precedente, sto provando in tutti i modi di capire se c'è un errore da parte mia rispetto a quanto da te consigliatomi giorni addietro.

    Passi necessari:

    1)Crea un db  vuoto in Access.

    2)Scheda Dati esterni  , Importa/Collega / Pulsante Database ODBC

    3)Parte un wizard seleziona Collega All'origine dati creando una tabella collegata

    4)Maschera Seleziona Origine dati a questo punto devi creare un DSN per collegarti al DB SQL. Scrivi un nome e  clicca su NUOVO. Seleziona SQL Server Native Client.

    Scrivi il nome in cui salvare la connessione es. miodb  click su Avanti click su Fine

    Scrivi una descrizione per il collegamento, scrivi l'indirizzo del server a cui collegarsi es .\SQLEXPRESS click su avanti, scegli il tipo di autenticazione,

    fin qui tutto bene, ma poi quando scrivi:

    seleziona il database a cui collegarti,

    e mi ritrovo la seguente schermata:

    https://skydrive.live.com/#!/view.aspx?cid=DFDFB766AA86F9D8&resid=DFDFB766AA86F9D8%21197&app=Word

    Debbo selezionare uno dei database predefiniti di SQL oppure "Associa file di database" dove non accetta però nessun nome scritto?

    Oppure non fare nulla e proseguire fino alla seguente schermata ritrovandomi tutti i nomi delle tabelle di SQL:

    https://skydrive.live.com/#!/view.aspx?cid=DFDFB766AA86F9D8&resid=DFDFB766AA86F9D8%21199&app=Word

    e non selezionare nulla limitandomi solo a chiudere avendo creato però il file .dsn?

    File .dsn che se eliminato il collegamento via ODBC tramite Strumenti database/SQL Server: "Crea nuovo database" ed infine "Collega tabelle di SQL Server all'applicazione esistente" lo fa lo stesso?

    Infatti passando sopra il nome della tabella collegata con il mouse mi esce scritto:

    ODBC;DRIVER=SQL Server;SERVER=ACER;APP=2007 Microsoft Office system;DATABASE=S.A.T_10SQL;TABLE=dbo.SchedaCliente

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2013-09-27T20:46:28+00:00

    Ciao Vladimiro,

    sia nel caso dell'installazione di SQL server 2005, che nel caso di installazione di SQL Server 2008, hai probabilmente scelto tra le opzioni di installazioni anche i Reporting Services, che richiedono la presenza di IIS,  puoi evitare di installarli, diciamo che se riusciamo, i report li facciamo con Access. 

    Sul tuo pannello di controllo IIS non esiste o perché hai una versione di Windows "Home"  o perché non l'hai installata, se hai una versione di Windows Professional, puoi ancora installarla, ma diciamo che non ci serve e vediamo se riusciamo ad andare avanti.

     

    Ciao, 

    come hai specificato ho tolto il segni di spunta su Reporting Services installando SQL Server Express 2008 R2. Ho seguito passo passo le indicazioni di Mancini optando per autenticazione di connessione mista ma il risultato purtroppo non cambia, anzi l'apertura di una maschera con 100 record è aumentata di 3 secondi arrivando ad aprirsi dopo 17 secondi.

    Ho consentito al seguente programma il Firewall, anche se non stava sul seguente percorso:

    C:  \  Program Files  \  Microsoft SQL Server  \  MSSQL10_50.SQLEXPRESS  \  MSSQL  \  Binn   \    sqlserver.exe

    bensì su questo:

    C:  \  Program Files  \  Microsoft SQL Server  \  MSSQL10_50.MSSQLSERVER

    \  MSSQL  \  Binn   \    sqlserver.exe

    ma pur inserendolo o eliminandolo nuovamente dalle opzioni del firewall non è cambiato nulla (almeno per quello che sto facendo ora).

    Ho notato una cosa, una volta aperta la maschera (maschera singola con 11 campi) anche lo spostamento in avanti dei record avviene istantaneamente per una decina di record, dopodiché ci impiega un bel po' di secondi prima di continuare velocemente per altri 10 record e così via; oppure non ha difficoltà a tornare indietro velocemente anche se si trova al cinquantesimo record.

    Un'altra cosa strana è l'apertura del report dalla stessa maschera.

    Il report si vede quasi subito, però la sua vera attivazione avviene sempre dopo molti secondi. (per attivazione intendo ad esempio poter metterlo in struttura, oppure chiuderlo, oppure attivare l'anteprima di stampa ecc...)

    Nella mia ignoranza penso che il db non trova subito la porta di ingresso verso SQL, ecco perché ci impiega tutto questo tempo a connettersi.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento