La procedura standard che si occupa di eseguire questo compito è : sp_changeobjectowner Sintassi :
1 |
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner' |
Nell’esempio si invoca l’oggetto WinHTTP per eseguire una richiesta HTTP da una stored procedure, l’oggetto WinHTTP è una calsse COM, perciò tale esempio è applicabile a qualsiasi classe COM :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
/* *************** ESEMPIO CODICE t-sql ******************* */ CREATE proc dbo.INVIA_RICHIESTA(@Proxy varchar(400), @ProxyByPass varchar(400),@sUrl varchar(400),@sParam varchar(400)) as DECLARE @Hresult int DECLARE @oWinHttp int DECLARE @ErrorSource varchar (255) DECLARE @ErrorDesc varchar (255) DECLARE @Testo varchar (4000) DECLARE @A varchar (400) Set @testo = '' --Create the object EXEC @Hresult = sp_OACreate 'WinHttp.WinHttpRequest.5', @oWinHttp OUT IF @Hresult <> 0 BEGIN EXEC sp_OAGetErrorInfo @oWinHttp, @ErrorSource OUT, @ErrorDesc OUT PRINT '(1)Error Occurred Calling Object: ' + @ErrorSource + ' ' +@ErrorDesc END EXEC @Hresult = sp_OAMethod @oWinHttp, 'SetProxy', NULL , '2' , @Proxy , @ProxyByPass EXEC @Hresult = sp_OADestroy @oWinHttp |
Per invocare un dialog di conferma in Javascript :
1 2 3 4 |
if(confirm( 'Si vuol procedere' )) { alert('hai premuto ok') } else { alert('hai premuto annulla') }; |
Associare un estensione file alla vostra applicazione : Associare un estensione file alla vostra applicazione :
1 |
Procedure <b>RegisterFileType</b>(cMyExt, cMyFileType, cMyDescription, ExeName: string; IcoIndex: integer; DoUpdate: boolean = false); |
1 |
var |
1 |
Reg: TRegistry; |
1 |
begin |
1 |
Reg := TRegistry.Create; |
1 |
try |
1 |
Reg.RootKey := HKEY_CLASSES_ROOT; |
1 |
Reg.OpenKey(cMyExt, True); |
1 |
// Write my file type to it. |
1 |
// This adds HKEY_CLASSES_ROOT\.abc\(Default) = 'Project1.FileType' |
1 |
Reg.WriteString('', cMyFileType); |
1 |
Reg.CloseKey; |
1 |
// Now create an association for that file type |
1 |
Reg.OpenKey(cMyFileType, True); |
1 |
// This adds HKEY_CLASSES_ROOT\Project1.FileType\(Default) |
1 |
// = 'Project1 File' |
1 |
// This is what you see in the file type description for |
1 |
// the a file's properties. |
1 |
Reg.WriteString('', cMyDescription); |
1 |
Reg.CloseKey; // Now write the default icon for my file type |
1 |
// This adds HKEY_CLASSES_ROOT\Project1.FileType\DefaultIcon |
1 |
// \(Default) = 'Application Dir\Project1.exe,0' |
1 |
Reg.OpenKey(cMyFileType + '\DefaultIcon', True); |
1 |
Reg.WriteString('', ExeName + ',' + IntToStr(IcoIndex)); |
1 |
Reg.CloseKey; |
1 |
// Now write the open action in explorer |
1 |
Reg.OpenKey(cMyFileType + '\Shell\Open', True); |
1 |
Reg.WriteString('', '&Open'); |
1 |
Reg.CloseKey; |
1 |
// Write what application to open it with |
1 |
// This adds HKEY_CLASSES_ROOT\Project1.FileType\Shell\Open\Command |
1 |
// (Default) = '"Application Dir\Project1.exe" "%1"' |
1 |
// Your application must scan the command line parameters |
1 |
// to see what file was passed to it. |
E’ possibile ottenere l’ip (ip address) del proprio computer utilizzando la classe Indy “idIpWatch” , ad esempio per inserire l’ip nella caption del ns form è sufficiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
implementation uses IdIPWatch; ... procedure TfrmMain.FormCreate(Sender: TObject); var ids: TidIpWatch; begin ids := TidIpWatch.Create; Caption := Caption + '(' + ids.LocalIP + ':8888)'; ids.Free; end; |
Se invece ci si volesse complicare un pochino la vita si potrebbe interrogare direttamente il winSock in modo da non dover includere una classe indy nel progetto…
Leggi tutto
Esempio invocazione package SQL Server da Visual Basic Script engine:
1 2 3 4 5 6 7 8 9 10 11 |
sub ExecutePackage(Server,UserId,UserPw,PackageName); set objDTSPackage = CreateObject("DTS.Package"); objDTSPackage.LoadFromSQLServer Server, UserId,UserPw, DTSSQLStgFlag_Default, "", "", "", PackageName objDTSPackage.Execute Set objDTSPackage = Nothing msgbox("Esecuzione package conclusa") End Sub |
1 |
call ExecutePackage("localhost","sa", "sa", "PortingFromIB") |