2011-11-14 23 views
22

Possiedo un utente di Crystal Reports 2008 con oltre 100 report personalizzati. I report eseguono query su database Sql Server (SQL 2005).
Questo server di database viene sostituito con un nuovo sistema (con SQL 2008 R2 in esecuzione) ei database esistenti verranno spostati nel nuovo server. Il nuovo server database avrà un nome diverso (che posso indirizzare tramite Crystal Reports Connections), tuttavia, anche una delle applicazioni verrà aggiornata contemporaneamente. Il vecchio database (DB_A) verrà ripristinato sul nuovo server per il reporting storico e verrà creato un nuovo database (DB_B). Il nuovo DB_B avrà uno schema molto simile, quindi mi aspetto che la maggior parte dei Crystal Reports dovrebbe essere in grado di funzionare contro il nuovo DB_B con poche o nessuna modifica se non quella di puntare la definizione del report sul nuovo DB_B.Come faccio a puntare Crystal Reports su un nuovo database

Ovviamente, la maggior parte dei miei utenti ha sviluppato query di report personalizzate contro DB_A.

La mia domanda è: come posso modificare i file Crystal Reports esistenti in modo che puntino al nuovo nome del database (DB_B) anziché al vecchio database (DB_A)?

+0

La risposta avrebbe dovuto essere davvero quella di ripristinare il database precedente nel nuovo database utilizzando un nome diverso. Quindi il nuovo database avrebbe dovuto utilizzare lo stesso database utilizzato da tutti i report. Se lo schema è diverso, è necessario modificare solo quei report in cui lo schema è diverso, ma non il percorso dell'origine dati. – Sun

risposta

4

Scegli il database | Imposta posizione origine dati ... Selezionare il nodo database (cilindro giallo) della connessione corrente, quindi selezionare il nodo database della connessione desiderata (potrebbe essere necessario autenticarsi), quindi fare clic su Aggiorna.

È necessario eseguire questa operazione anche per i nodi "Sottoreport".

FYI, puoi anche fare singole tabelle selezionandole singolarmente, quindi scegliendo Aggiorna.

+1

Appena provato, il report sta ancora interrogando DB_A. Inoltre, quando seleziono "Mostra query SQL" dal menu Database e mostra "SELECT col1, col2 FROM [DB_A]. [Dbo]. [Table]". Quello che mi serve è che faccia "SELECT col1, col2 FROM [DB_B]. [Dbo]. [Table]" – JSR

+0

Stai usando il driver nativo, ODBC o OLEDB? – craig

+0

Normalmente utilizzo il driver nativo. Se ho problemi di commutazione, creerò un'origine dati ODBC temporanea che punta alla posizione corretta. Imposterò il percorso sull'origine dati ODBC, quindi tornerò al driver nativo con il proprietario dello schema corretto. – craig

44

Utilizzare il menu Database e l'opzione di menu "Imposta posizione origine dati" per modificare il nome o l'ubicazione di ciascuna tabella in un report.

Questo funziona per modificare la posizione di un database, passare a un nuovo database e modificare la posizione o il nome di una singola tabella utilizzata nel report.

Per modificare la connessione dell'origine dati, accedere al menu Database e fare clic su Imposta origine origine dati.

  1. modificare la connessione origine dati:
    1. Dall'elenco Origine dati corrente (il bauletto), fate clic una volta sulla connessione origine dati che si desidera modificare.
    2. Nell'elenco Sostituisci con (la casella in basso), fare clic una volta sulla nuova connessione dell'origine dati.
    3. Fare clic su Aggiorna.
  2. cambiamento individuale Tabelle:
    1. Dall'elenco Origine dati corrente (il bauletto), espandere la connessione origine dati che si desidera modificare.
    2. Trova la tabella per cui si desidera aggiornare la posizione o il nome.
    3. Nell'elenco Sostituisci con (la casella in basso), espandere la nuova connessione dell'origine dati.
    4. Trova la nuova tabella che vuoi aggiornare a cui puntare.
    5. Fare clic su Aggiorna.
    6. Si noti che se il nome della tabella è stato modificato, il nome della tabella precedente verrà ancora visualizzato in Field Explorer anche se ora utilizza la nuova tabella.(È possibile verificare che stia guardando il Nome tabella delle proprietà della tabella in Origine dati corrente in Imposta posizione origine dati. Screenshot http://i.imgur.com/gzGYVTZ.png) È possibile rinominare il nome della vecchia tabella con il nuovo nome dal menu di scelta rapida in Esperto database -> Tabelle selezionate .
  3. Modifica Sottoreport:
    1. Ripetere ciascuno dei passaggi precedenti per eventuali subreports si potrebbe avere incorporato nel rapporto.
    2. Chiudere la finestra Imposta posizione origine dati.
  4. tutti i comandi o espressioni SQL:
    1. Vai al menu di database e fare clic su Esperto database.
    2. Se il progettista del report ha utilizzato "Aggiungi comando" per scrivere SQL personalizzato, verrà visualizzato nella casella Tabelle selezionate sulla destra.
    3. Fare clic con il pulsante destro del mouse su questo comando e selezionare "Modifica comando".
    4. Verificare se SQL specifica un database specifico. Se è così potrebbe essere necessario cambiarlo.
    5. Chiude la finestra del database.
    6. Nel riquadro Field Explorer sulla destra, fare clic con il pulsante destro su qualsiasi SQL Expressions.
    7. Verificare se le espressioni SQL specificano un database specifico. Se è così potrebbe essere necessario cambiarlo anche
    8. Salvare e chiudere la finestra dell'Editor delle formule una volta terminata la modifica.

e provare a eseguire nuovamente il report.

La chiave è modificare prima la connessione dell'origine dati, quindi tutte le tabelle che è necessario aggiornare, quindi le altre cose. La connessione non cambierà automaticamente le tabelle sottostanti. Quei tavoli sono come delle papere che hanno impressionato il primo grande animale simile a un'oca che vedono. Continueranno a ignorare ogni logica e ragione e ad andare dove sono sempre andati, a meno che non li modifichi manualmente.

Per rendere più conveniente, ecco un suggerimento: è possibile "Mostra query SQL" nel menu Database, e vedrete i nomi delle tabelle qualificati con il database (come "Vendite". "Dbo". "Clienti") per tutte le tabelle che vanno direttamente a un database specifico. Questo potrebbe rendere la caccia più facile se hai un sacco di cose in corso. Quando ho affrontato questo problema, ho dovuto cambiare ogni tabella per puntare alla nuova tabella nel nuovo database.

+0

+1. Mi hai risparmiato ore di lavoro! –

+0

ma se lo fai, allora tutti i nuovi campi dell'origine dati saranno in formato stringa –

+0

Se stai lavorando in Visual Studio, dopo aver fatto ciò, potresti voler salvare, chiudere e riaprire Visual Studio. Ho appena avuto un crash di VS2010 circa 20 minuti dopo aver fatto questo aggiornamento (che ha funzionato alla grande inizialmente) .. ma quando si è bloccato ... ho ottenuto "Impossibile caricare il set di dati a causa del seguente errore: Riferimento dell'oggetto non impostato su un'istanza di un oggetto." Potrebbe non essere affatto correlato ... ma potrebbe risparmiare un po 'di dolore ... Ho permesso a VS di riaprire automaticamente la prima volta ... probabilmente non è una buona idea neanche ... Avrei potuto stare meglio spegnendo il VS e riapertura manuale ... –

Problemi correlati