Aruba+SQL SCHEMA + Connessione al Database

domenica 04 ottobre 2009 - 21.36

wave00 Profilo | Junior Member

Ciao a tutti,
sto avendo un problema un poco grave.
Ho realizzato il sito ad un'amica e funzionava tutto benissimo! Ho fatto un backup dal sito di aruba del database ed importato su quello, in pratica si è distrutto tutto! Tutte le tabelle e le stored procedure del db locale risultano con schema MsSQL3xxx perchè Aruba non concede l'accesso tramite dbo.
Morale della favola ora il mio DataAccess Layer mi dice che non esistono ne tabelle e nemmeno stored procedure quando in realtà ci sono e funzionano con MsSQL3xxx e non più con dbo.
Cosa posso fare?
Aiutatemi.

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao

>Morale della favola ora il mio DataAccess Layer mi dice che non
>esistono ne tabelle e nemmeno stored procedure quando in realtà
>ci sono e funzionano con MsSQL3xxx e non più con dbo.
>Cosa posso fare?
Con Aruba, non si può fare altro che cambiare il DAL. Terribile, lo so, ma è una delle ragioni per cui non lo uso più da tanto tempo.
Uso http://www.databasemart.com

e sinceramente, visto che posso usare anche sql server management studio e i miei schema, lo preferisco di granlunga..


--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

wave00 Profilo | Junior Member

Beh ma costa un bel pò.Cmq in visual studio non posso configurare la mia applicazione affinchè utilizzi lo Schema che ho definito io?
Le mie tabelle e stored procedure usano uno schema MsSQL3xxx, scusami ma è la prima volta che mi capita una cosa del genere. Io ho sempre usato dbo.

alx_81 Profilo | Guru

>Beh ma costa un bel pò.Cmq in visual studio non posso configurare
>la mia applicazione affinchè utilizzi lo Schema che ho definito io?
Visual studio che c'entra? Hai usato VS per fare il db?

>Le mie tabelle e stored procedure usano uno schema MsSQL3xxx,
>scusami ma è la prima volta che mi capita una cosa del genere.
>Io ho sempre usato dbo.
Ah, credevo che avessi usato i tuoi schema. Scusa ma siccome credo che usarli sia importantissimo ho creduto che tu facessi uso di schema proprietari.
Se cambi le chiamate che fai e al posto di dbo non metti nulla, dovrebbe andare tutto, poichè Aruba dà al tuo utente lo schema di default che crea per i tuoi database.
Non devi nominare lo schema, oppure andare a mettere quello corretto.

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

wave00 Profilo | Junior Member

Quindi se non metto niente Aruba associa direttamente tutto all'utente che mi ha creato?
Ma se decidessi di definire un mio Schema, come faccio ad impostare la mia applicazione? Io uso il Data Access Application Block per accedere al Db

alx_81 Profilo | Guru

>Quindi se non metto niente Aruba associa direttamente tutto
>all'utente che mi ha creato?
L'ultima volta che l'ho usato sì. Nel senso che non associa all'utente, ma definisce per l'utente uno schema MSSQLxxxx che è quello di default. Siccome, se omesso, il primo schema ad essere ricercato è quello assegnato di default per l'utente, tu puoi ometterlo nelle tue query.

>Ma se decidessi di definire un mio Schema, come faccio ad impostare
>la mia applicazione? Io uso il Data Access Application Block per accedere al Db
non puoi, con Aruba usi solo il loro schema. E credimi, non sai quanto gliel'ho chiesto anche io. Anche perchè non c'è nulla di che da fare se si settano le permission come si deve.


--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

wave00 Profilo | Junior Member

Dicevo al di là di usara Aruba, come potrei fare a configurare la mia applicazione?Magari modificando il web config.
Come mai dici che sono utilissimi i Schema?Io non li ho mai usati e mi interessa saperli usare perchè appena faccio un backup del mio database online ed un restore in quello locale, mi importa tutte le tabelle e le stored procedure con lo schema definito da aruba che tra l'altro non posso nemmeno eliminare!

PS: Ma come mai in questo Forum se non rispondi tu non risponde quasi mai nessuno?

alx_81 Profilo | Guru

>Dicevo al di là di usara Aruba, come potrei fare a configurare
>la mia applicazione?Magari modificando il web config.
Puoi configurare finchè vuoi, ma poi arrivi sempre ad un db, e agli eventuali schema che hai configurato. Non capisco di preciso cosa vorresti configurare. Gli schema?
Tipo, su aruba usi uno schema su altri un'altro?

>Come mai dici che sono utilissimi i Schema?Io non li ho mai usati
>e mi interessa saperli usare perchè appena faccio un backup del
>mio database online ed un restore in quello locale, mi importa
>tutte le tabelle e le stored procedure con lo schema definito
>da aruba che tra l'altro non posso nemmeno eliminare!
Sono utilissimi perchè :
- sono un livello di raggruppamento degli oggetti
- ti permettono di dare permission modularmente
- ti consentono di nominare oggetti con lo stesso nome ma sotto schema diverso (pensa agli schema vendite ed acquisti quanti oggetti potrebbero avere in comune)
- ti fanno capire meglio su che unità di lavoro stai scrivendo query
- ti danno una maggiore leggibilità del tuo sql
- ti permettono di scrivere applicazioni suddivise esattamente come il database propone

ma questa è la mia visione. Ovviamente c'è sempre da capire le esigenze di ognuno. Ma credo che le motivazioni siano buone.

>PS: Ma come mai in questo Forum se non rispondi tu non risponde quasi mai nessuno?
Su sql server purtroppo siamo pochi, Lorenzo ed io (e qualche altro utente che non fa parte dello staff, ma che sta crescendo ). Diciamo che siamo tutti molto impegnati sul lavoro e facciamo comunque di tutto per essere presenti qui. Devo dire che ultimamente alcuni utenti stanno facendo bene, ma c'è poca gente di Voi che prova a rispondere. Servirebbe un po' più di "coraggio" nell'intervenire, sembra che a volte ci sia un po' di timore . Ma è solo un'impressione. Di gente brava ce n'è davvero tanta e spero che un giorno tanti di Voi (un numero sempre maggiore) possano dire la loro. Alla fine la comunità è uno scambio di idee. Non c'è nessuno che vince o che DEVE sapere.. Ci sono persone che in base alle esperienze e alle conoscenze prova ad aiutare. Insomma, serve lo spirito giusto, non trovi? Noi cerchiamo di mettercela tutta!
Vedrai che presto cambierà. Diciamo che cambieranno alcune cose
Ma non ti basto?
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

wave00 Profilo | Junior Member

Mi basti assolutamente anzi spiegami bene questa storia degli Schema sono come una sorta di pachage di java o namaspaces di c#?
Se cremo una stored procedure facendo il
CREATE STORED [MySchemaName].[MyStoredName] ......
e poi nel mio progetto scrivo
command = database.GetStoredProcCommand("ValidateUser");
dove command e database sono rispettivamente di tipo DbCommand e Database.
Il mio progetto mi dice che non trova la stored procedure.
Sai dirmi come mai?
Se vuoi ti metto il mio web config.

alx_81 Profilo | Guru

>Mi basti assolutamente anzi spiegami bene questa storia degli
>Schema sono come una sorta di pachage di java o namaspaces di c#?
Diciamo che namespace può essere il concetto più vicino
http://msdn.microsoft.com/it-it/library/ms190387.aspx

>Se cremo una stored procedure facendo il
>CREATE STORED [MySchemaName].[MyStoredName]
>......
>e poi nel mio progetto scrivo
>command = database.GetStoredProcCommand("ValidateUser");
>dove command e database sono rispettivamente di tipo DbCommand e Database.
>Il mio progetto mi dice che non trova la stored procedure.
>Sai dirmi come mai?
in base al tuo CREATE PROCEDURE, dovresti fare

command = database.GetStoredProcCommand("MySchemaName.MyStoredName");

ma con aruba, se gli oggetti sono stati creati sotto dbo e se il provider te li ha messi sotto MSSQLxxxx, allora dovresti fare:

command = database.GetStoredProcCommand("MyStoredName");

Se ancora non funziona, prova a chiamarlo mettendo lo schema che loro ti propongono.

>Se vuoi ti metto il mio web config.
Non avendo usato mai il block di enterprise library, magari viene scritto qualcosa su questo file. Ma non credo che il problema sia lì. Tuttavia, proviamo.

Per gli schema leggi se vuoi anche questo mio post:
http://blogs.dotnethell.it/suxstellino/SQL-Server-2005-Gli-schema-e-le-query__11991.aspx
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

wave00 Profilo | Junior Member

Grazie Alessandro,
ci sono arrivato dopo averti scritto.Diciamo che è una notazione molto simile a quella ad oggetti.
Cmq sia ora è chiaro!Devo imparare a conoscere bene SQL Server perché ci sono tante cose interessanti quindi scriverò molto sul forum.
Grazie ancora.

martinez Profilo | Senior Member

scusa sei riuscito a recuperare il DB che hai esportato da ARUBA in locale ???? (credo fosse questa la tua richiesta )

altrimenti potresti usare il database publishing wizard ....

1) importi il bakap di aruba su un DB
2) usi il database publishing wizard e generi l'sql relativo
3) apri l'sql e lo editi con trova e sostituisci cerchi tutti i riferimenti allo schema di aruba [Msql....]. e li sostituisci con nulla ... come anche suggerito da Alessandro oppure li sostituisci con lo schema [dbo].
4) salvi il file
5) lo reimporti in un nuovo db e avrai elimnato il problema dello schema ...

io risolvo così il problema ... ma se hai alternative meno complesse fammi sapere

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5