Newsgroup: it.comp.appl.access
Titolo: Gestione Visuale di MSDE

Vorrei migrare un MDB in MSDE , quali strumenti visuali posso utilizzare 
per gestire il Server e i relativi DB ?

 per gestire il Server e i relativi DB ?
DbaManager di Andrea Montanari
scaricabile gratuitamente da
http://www.asql.biz/DbaMgr.shtm
Ciao Giorgio

 ha scritto nel messaggio
news:c0amm0$3p3$1...@lacerta.tiscalinet.it...

Non ho ancora capito come fare a Relazionare le Tabelle
e si che lo uso da qualche mese.....
Ultimamente ho preferito lavorare parte con DbaManager e parte con
ADP per semplicità mia.....!
Ciao Giorgio.
@Alex.

 ha scritto nel messaggio
news:c0bals$n56$1...@lacerta.tiscalinet.it...

ciao,
Con ADP puoi creare un diagramma in cui puoi creare e visualizzare
graficamente le relazioni tra le tabelle.
Io preferisco creare le tabelle e le relazioni via codice mi risulta più
facile, soprattutto con l'aiuto di Query Analyzer che colora le varie parti
di codice (Blu per le varie istruzioni tipo SELECT ecc, rosa per le
funzioni, verde per le rem, rosso per i testi racchiusi tra singoli apici)
Esegui questo script da DbaManager e dagli un'occhiata,  verso il fondo dove
c'è (-- Creo la relazione)  seguono quattro semplici righe per crearla. Poi
ti colleghi al database con un progetto ADP crei un nuovo diagramma,
aggiungi le due tabelle e vedrai che automaticamente te le collega
graficamente.
(ps oggi ho installato una procedura (progetto adp in formato ade) a un mio
cliente che ha appena acquistato un server HP processore Xeon 2.8Ghz  con
Win2003 server, uso MSDE2000 e  il database è di 200Mb (hanno 6 anni
memorizzati), gli uenti collegati sono 8 con pc vari da PII 350Mhz a PIII
800Mhz.
La velocità dell'applicazione è impressionante!! e naturalmente è uguale sia
nei computer scarsi che in quelli meno scarsi)
:-)))))
Ciao Giorgio
-------------------------
-- Crea il database ProvaFatture
-- e poi lancia questo scripo da DbaManager
USE ProvaFatture
GO
-- Creo la tabella fatture
CREATE TABLE Fatture
 (Id_Record int IDENTITY(1,1)
     CONSTRAINT PK_Fatture PRIMARY KEY,
  Anno int NOT NULL
     CONSTRAINT DF_Fatture_Anno
     DEFAULT(YEAR(GETDATE())),
  Numerazione CHAR(1) NOT NULL
     CONSTRAINT DF_Fatture_Numerazione
     DEFAULT('A'),
  Numero int NOT NULL
     CONSTRAINT DF_Fatture_Numero
     DEFAULT(0),
  Data datetime NOT NULL
     CONSTRAINT DF_Fatture_Data
     DEFAULT(CONVERT(Datetime,Convert(varchar,GETDATE(),112))),
  Id_Cliente  int not null,
  CONSTRAINT IX_Fatture_Numero
      UNIQUE (Anno,Numerazione,Numero)
)
GO
-- Creo un trigger per assegnare automaticamente il
-- numero della fattura in base alla numerazione e all'anno
CREATE TRIGGER TR_Fatture_INS_UPD
    ON Fatture FOR INSERT,UPDATE
AS
SET NOCOUNT ON
  -- Questo trigger funziona solo se si inserisce un record alla vola
  IF (SELECT COUNT(1) FROM INSERTED)>1
     RETURN
  IF UPDATE(Data) OR UPDATE(Numero)
     UPDATE F
        SET Anno=YEAR(I.Data),
            Numero=CASE WHEN F.Numero=0
                        THEN (SELECT MAX(Numero)
                              FROM Fatture
                              WHERE Anno=Year(I.Data)
                                AND Numerazione=I.Numerazione)+1
                        ELSE F.Numero END
      FROM INSERTED I
        INNER JOIN
           Fatture F ON I.Id_Record=F.Id_Record
GO
-- Creo la Tabella Righe fattura
CREATE TABLE Fatture_Righe
 (Id_Record int IDENTITY(1,1)
     CONSTRAINT PK_Fatture_Righe PRIMARY KEY,
  Id_Fattura int NOT NULL,
  Articolo varchar(20) NOT NULL,
  Qt decimal(18,6) NOT NULL
     CONSTRAINT DF_Fatture_Righe_Qt DEFAULT(0),
  Prezzo decimal(18,2) NOT NULL
     CONSTRAINT DF_Fatture_Righe_Prezzo DEFAULT(0),
  Importo AS CONVERT(Decimal(18,2),QT*Prezzo),
  -- Creo la relazione
  CONSTRAINT FK_Fatture_Fatture_Righe
    FOREIGN KEY (Id_Fattura)
    REFERENCES Fatture (Id_Record)
    ON DELETE CASCADE
  )
-- Creo un'indice sulla tabella Fatture_Righe
-- per velocizzare la cancellazione
-- in cascata
CREATE INDEX IX_Fatture_Righe
  ON Fatture_Righe (Id_Fattura)
----------------------------------
Ovviamente se le tabelle sono già create basta fare
  ALTER TABLE Fatture_Righe ADD
  CONSTRAINT FK_Fatture_Fatture_Righe
    FOREIGN KEY (Id_Fattura)
    REFERENCES Fatture (Id_Record)
    ON DELETE CASCADE

 ha scritto nel messaggio
news:c0blln$1dp$1...@lacerta.tiscalinet.it...

Giorgio mi sono perso alla generazione dello Script, dopo aver generato il
DB
Fatture che fò.....!
Porta pazienza ma per me SQL_SERVER è una bastia piena di Tabelle, non
sono abituato a lavorarci in modo approfondito.....!
@Alex.


Ciao,
Apri DbaManager, ti collegli al server, poi apri menu Activity-->Query,
incolli lo script e lo esegui.
Apri un progetto adp lo colleghi al db vai nei diagrammi ne crei uno nuovo,
aggiungi le due tabelle e confronti  graficamente la relazione con la parte
di script che l'ha generata.
--------------
CONSTRAINT FK_Fatture_Fatture_Righe
    FOREIGN KEY (Id_Fattura)
    REFERENCES Fatture (Id_Record)
    ON DELETE CASCADE
--------------
dovrebbe aiutarti a capire il significato delle istruzioni che compongono
una FOREIGN KEY.
(sempre se ho interpretato bene la tua perplessità)
Ciao Giorgio

 Ciao Giorgio
Hai capito benissimo, e strano ma vero ho capito anch'io, beh che devo dire
è decisamente grande, apprezzo anche le novità, per me, del TSQL alle quali
mi dovrò abituare studiando.....!
Devo dire che anche se non ho approfondito molto ritengo di aver utilizzato
il 10% delle potenzialità di ADP, dovuto al fatto che posso sviluppare solo
a casa...!
Al lavoro usando A97, a parte alcune SP il resto è gestito in locale con
QRY_PT
e Form Allegate, e devo dire che non è nemmeno paragonabile per intuitività
e
facilità d'uso.
Dovresti farmi dei corsi di corsa......! ;-)
In ogni caso non mollo e sò che la tua spalla è robusta...!
Grazie per la chiarezza.
@Alex.

 In ogni caso non mollo e sò che la tua spalla è robusta...!
Le spalle robuste le trovi su microsoft.public.it.sql, è solo da due anni
che ci sbatto la testa e ovviamente nei primi tempi tentavo di usare
SqlServer come sostitututivo dei database di Access, grande ma inevitabile
errore.
Ciao Giorgio