giovedì, dicembre 02, 2010

AttachDbFilename e SQL Server 2008

Se vi dovesse capitare la sventura di voler collegare un database SqlServer express prodotto dal vostro fido Visual studio 2010, nel deploy di un applicazione web.net su un server che ha installato SqlServer2005, passerete una lunga serie di 5 minuti a chiedervi per quale motivo non vada.

Questa stringa di connessione vi verrà in aiuto:
"Data Source=server\istanza;AttachDbFilename='|DataDirectory|\database.MDF';Integrated Security=True;"
Ovviamente modificate le impostazioni di sicurezza secondo i vostri parametri.
Testato su Sql Server 2008.

mercoledì, maggio 20, 2009

Impossibile visualizzare o creare diagrammi in Microsoft Sql Server 2005

Può capitare dopo aver importato un database in Sql Server 2005 che non sia più possibile accedere ai diagrammi.
Tranquilli, non sono andati perduti, è solo un problema di permessi.
Il messaggio di errore è:
Database diagram support objects cannot be installed because this database does
not have a valid owner. To continue, first use the Files page of the Database
Properties dialog box or the ALTER AUTHORIZATION statement to set the database
owner to a valid login, then add the database diagram support objects.


Oppure in italiano:

Impossibile installare gli oggetti di supporto per i diagrammi di database
perchè al database non è associato un proprietario valido per continuare
utilizzare innanzitutto la pagina file della finestra di dialogo proprietà del
database o l'istruzione alther autorization per impostare il proprietario del
database su un account di accesso valido quindi aggiungere gli oggetti di
supporto per i diagrammi di database.


Ecco la soluzione tratta da MSDN http://msdn.microsoft.com/en-us/library/ms186345(SQL.90).aspx

ALTER AUTHORIZATION ON DATABASE::database_name TO "UTENTE"
go
use [database_name]
go
EXECUTE AS USER = N'dbo' REVERT
go


Questo vi permetterà di ottenere nuovamente accesso ai vostri diagrammi o di crearne di nuovi.

martedì, novembre 18, 2008

Asp.Net MasterPages: Link dinamico a file js

Quando si utilizzano Master pages può capitare la necessità di linkare file javascript solo in particolari content pages.

Questa semplice riga(da inserire nel page load) ci viene in aiuto:

Page.ClientScript.RegisterClientScriptInclude("common", ResolveUrl("js/javascript.js"))


In questo modo il client scaricherà il file javascript solo quando serve!

mercoledì, settembre 24, 2008

Office Outlook 2007 salvare gli allegati di un gruppo email.

Se per caso vi fosse successo di ricevere una svariata decina di email con in allegato dei file da salvare ... beh, Outlook non è dalla nostra parte e non ci aiuta nemmeno un pò.

Fortuna che ci sono le macro!!!



Sub SalvaAllegati()

Dim i As MailItem
For Each i In Application.Explorers.Item(1).Selection
Dim a As Attachment
For Each a In i.Attachments
a.SaveAsFile ("c:\temp\" & a.FileName)
Next
Next
End Sub



Create la macro, selezionate le email con gli allegati da recuperare e avviate la macro.

Andate nella cartella di destinazione e trovere i file salvati!

venerdì, aprile 11, 2008

SqlDataSource, recuperare l'identità appena inserita

Quando si esegue un INSERT INTO attraverso le funzionalità dell'oggetto SqlDataSource, magari collegato a un FormView, può essere molto utile risalire alla chiave appena inserito nella tabella.
Ovviamente mi riferisco a una tabella che abbia come campo chiave un identità.
Ecco come fare:
impostare InsertCommand del SqlDataSource in questo modo

INSERT INTO [TABELLA] ([CAMPI])
VALUES ([@PARAMETRI]);SELECT
@NewID=SCOPE_IDENTITY()

Aggiungere fra gli InsertParameter:
Name="NewID" Direction="OUTPUT" Type="Int32"

Ora, nell'evento Protected Sub SqlDSClient_Inserted è possibile recuperare il valore:
e.Command.Parameters("@NewID").Value

Etichette:


giovedì, aprile 10, 2008

Anche A.Einstein faceva il programmatore?

La teoria è quando si sa tutto e non funziona niente. La pratica è quando
funziona tutto e non si sa perchè.

Bene o male riusciamo sempre a coadiuvare le
2 cose e non funziona niente e non sappiamo il perchè.


Anche A.Einstein faceva il programmatore?



mercoledì, aprile 09, 2008

Asp.Net file Download Confirmation

Per verificare che il client scarichi completamente un file dal vostro server, è necessario implementare una pagina di passaggio che legga lo stream del file e lo invii al client.
Durante l'invio è sufficiente verificare che la proprietà Response.IsClientConnected rimanga a True per tutto il tempo necessario.
Ecco un esempio:


Response.Clear()
Dim b(1024 * 128) As Byte
Dim DownLoadAbort As Boolean = False
Dim f As IO.FileStream = New IO.FileStream("c:\filename.txt", IO.FileMode.Open)
Response.AddHeader("Content-Disposition", "attachment;filename=filename.txt")
Response.AddHeader("Content-Length", f.Length.ToString)
Do While f.Position < f.Length
f.Read(b, 0, 1024 * 128)
Response.OutputStream.Write(b, 0, 1024 * 128)
If Not Response.IsClientConnected Then
DownLoadAbort = True
Exit Do
End If
Response.Flush()
Loop
f.Close()

If Not DownLoadAbort Then
'DOWNLOAD COMPLETED SUCCESFULLY
Else
End If
Response.End()



#