Konu: sql server
selam arkadaşlar
fox da sql server 2005 kullıyorum
sql server in calıstıgı bilgisayarın cpu seri nosunu sql konutları ile herhangi bir terminalden göremem mümkünmü
tşk.
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
selam arkadaşlar
fox da sql server 2005 kullıyorum
sql server in calıstıgı bilgisayarın cpu seri nosunu sql konutları ile herhangi bir terminalden göremem mümkünmü
tşk.
Rahmi mümkün;
Sana bu konuda hazır olarak kod veremem ama yöntem olarak bir fikir verebilirim:
SQL Server içinden .NET fonksiyonları yazabiliyorsun.
Öncelikle .Net ile CPU seri numarasını bulan bir fonksiyon yazman gerekiyor..
Sonra yazdığın fonksiyonu SQL Server a implemente ediyorsun.
SQL Server 'ın çalıştığı her bilgisayarda yazdığın bu fonksiyonu ayrı ayrı register etmen gerekiyor.
Daha sonra herhangi bir client makinesinden yazdığın fonksiyonu doğrudan çalıştırabilirsin ...
internette böyle bir kod buldum ama deneme şansım olmadı. benim server güvenlik uyarısı veriyor. server a girip güvenlik uyarısını da kaldıramam. çünkü mavi ekran hatası veriyor management a girince. kod çalışsa bile bence çok uygun değil. çünkü server'da ayar gerektiriyor.
CREATE TABLE #a(a varchar(8000) null)
exec master..xp_cmdshell 'wmic cpu>c:\cpu.txt'
bulk INSERT #a from 'c:\cpu.txt'
declare @start int, @finish int
SELECT @start=charindex('ProcessorId', a), @finish=charindex('ProcessorType',a) FROM #a where a like '%ProcessorType%'
SELECT DISTINCT substring(a, @start, @finish-@start) ProcessorID FROM #a where a not like '%ProcessorType%'
DROP TABLE #a
"SQL Server 'ın çalıştığı her bilgisayarda yazdığın bu fonksiyonu ayrı ayrı register etmen gerekiyor."
Ugur,
CLR function/procedure/type ... larin register edilmesi gerekmiyor. Bir kere yazildimi database'in parcasi haline geliyor ve sanki kendi function'i imis gibi calisiyor.
Bu arada bence mumkun degil (eger her zaman domain admin ve SQL server admin degilsen).
metin verdigin örnek çalışdı.
ama terminalden izin vermiyor
Rahmi;
Metin 'in verdiği kodu bir stored procedure olarak tanımlayıp terminallerden sonuç alabilirsin.
Çetin Üstadım;
Ben Database de tanımlı olsa bile; UDF lerin SQL Server'a tanımlanması gerekiyor diye biliyordum. Yanlış hatırlıyormuşum.
Düzeltme için teşekkürler
Bence Stored Procedure de ise yaramaz ama belki de yaniliyorumdur.
lnHandle = Sqlstringconnect('Driver={SQL Server Native Client 10.0};Server=.\SQLExpress;'+;
'Trusted_Connection=yes')
SQLExec(m.lnHandle,"select * FROM master.dbo.sysprocesses WHERE spid = (SELECT @@spid)",'ShowProcess')
SQLDisconnect(m.lnHandle)
Select 'ShowProcess'
Browse Normal
session a göre net_address bilgisi degisiyorsa ki degisiyor SSMS da farkli adres geliyor , VFP den yukaridaki kodu calistirinca baska
metin verdigin örnek çalışdı.
ama terminalden izin vermiyor
yetkiyle ilgili. yetkileri açarsan çalışır (sanırım).
metin yetki işleri karışık geldi
soykanla bulgumuz kod işe yaradı