Yazar |
|
auzunun
Bursa
Kayıt: 15.01.2006 |
|
İlk defa SQL Server açıyorum. İlk açılınca okuldan hatırladığım kadarıyla bağlantı sql server authentication yapılacak login de sa olacak diye biliyorum. Bunu yapınca nereye stored procedure yazıp çalıştırabileceğimi hatırlıyorum.
Fakat bağlanmıyor şöyle bir hata veriyor the user(sa) is not associated with a trusted SQL server connection . Herhalde bilmediğim bir şey yapıyorum.
Ben de windows authentication ile bağlantı yaptım stored procedure oluşturdum fakat bu seferde çalıştırabilmek için Tools da SQl Query analizer yok anlayamadım bu işi.
Bunların farkları nedir nasıl çalıştırabilirim stored procedure, açıklayabilecek olan olursa çok sevinirim. Hiç bir şey anlayamadım ve soğumaya başladım.
Bu arada SQL Server 2005 Standart Edition kullanıyorum
Öldüremiyorsan, yaralama.
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
sql server management studio yu kurduktan sonra veritabanına sağ yık yapıp new query dedikten sonra oraya kodunu yazabilirsin.
N/A
|
|
Yazar |
|
tarikkranda
Kayıt: 07.01.2006 |
|
Selamlar,
Baska arkadaslarinda ayni sekilde sorunu olabilecegini dusundugum icin detayli anlatayim:
Oncelikle SA Baglantı sorununuz için,okuldaki makineler mixed mde authentication ile calisiyorlardir, ancak sizin evdeki konfigurasyonunuz single mode-windows authentication dir default olarak bence.
Bunu duzeltmek icin;
1- Gene management Studio yu kullanarak windows authentication ile management studio yu acin.
2- Soldaki object explorer agacinda(gorunmuyorsa view sekmesi altinda object explorer i acin) en ust dugum olan server adiniz uzerine gelin. Sag tusla properties i ne girin.
3- Properties icinde soldan security sekmesini secin.
4- Security icinde Authentication Mode olarak Sql Server and Windows Authentication radio buttonu secili hale getirin.
5- Tamam diyerek properties penceresini kapatin.
6- gene object explorer icinde goruntulenen (database,security, Serer objects.. seklindeki) listeden securitynin + sina basarak genisletin logins in + si ile genisletin acilan kullanici listesinde sa yi secin sag tusla properties ine girin.
7- Properties icinde en altta bulunan status kismana girip enabled olup olmadigina bakin, degilse enabled yapin.
8- Tamam diyerek pencereyi kapatin.
9- Management studio yu kosesinden kapatin.
10- Baslat calistira services.msc yazarak servislere girin. Sql server services ini bulun durdurun ve yeniden baslatin.
Store procedure ve Uery Analizer sorununuz icin:
1- Management Studio yu acin. Bakin bakalim sa ile baglanabiliyor musunuz:) Authentication ode combobox i icinden sql server authentication i secmeyi unutmayin:)
2- acilan management studio icinde en yukarida file ... Help e kadar olan menu barının sag tarafında bos vir yere sag tusla basın ve acılan menuden standarrdı secin. Boylece yeni eklenen arac cubugunu n en solunda New Query i goreceksiniz. Ona tıklayarak query lerinizi yazabilirsiniz. Buna view-Toolbars-standart seklinde de ulasabilirsiniz.
3- burda Sp testi yapabilirsiniz.
4- yeni sp icin database inizin programability secenegi altindan store procedures dugumune gelip sag tusla new store procedure diyebilirsiniz.
Kolay gelsin, iyi calismalar.
|
|
Yazar |
|
auzunun
Bursa
Kayıt: 15.01.2006 |
|
Hocam öncelikle cevabınız için teşekkürler. Dediğiniz harfiyen yaptım servislerde tam olarak Sql server services adında bir hizmet yoktu o yüzden ben de Sql server integration service ve Sql server(MSSQL) hizmetlerini durdurup yeniden başlattım (neden bunları seçtim bilmiyorum ) sa ile bağlanmayı denedim bu seferki hata şu
| A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - Borunun diğer ucunda işlem yok.) (Microsoft SQL Server, Error: 233)
| yine bağlanmadı...
Bir de acaba windows authentication veya Sql server authentication ile bağlanmamızda ne fark var?
Öldüremiyorsan, yaralama.
|
|
Yazar |
|
tarikkranda
Kayıt: 07.01.2006 |
|
Şimid bunun gözüken bu komik hatadan dolayı nedenini tam olarak çözmek biraz zor görünüyor:) Ya bu nasıl bir hatadır yaa, zaman zaman bende rastladım bu hataya, geçenlerde Özgür le gene gülmüştük, "Borunun diğer ucunda işlem yok". MS yerelleştirme merkezine mail atacağım, İrlanda'ya:) Ya sakata gelmesin b hatayı alanlar daha açık ve net bir açıklama yazın diyeceğim:)
Neyse artık, işin şakası bir yana senin sql server in remote erişime kapalı olabilir. Sonu olarak Managemenet Studio da remote dan Sql Server çekirdeğine erişen bir uygulama. Buna izin vermek için;
1- Management Studio yu acin.
2- Object explorer uzerinde en ust dugum olan server adınıza sag tıklayıp properties e girin.
3- connections sekmesini secin ve buradaki Allow remote connections to this server seceneginin tikli olmasını saglayın. Tamam deyin. management studio yu kapatın.
4- gecen sevfer gibi baslat-> calistir a services.msc yazarak acilan servislerden Sql Server8MSSQL) i durdurup yeniden baslatin ve baglanmayi deneyin.
Not: Benim bir nceki mesajımda bahsettigim Sql Server Services aslında Sql Server (MSSQL) yazan servis zaten. Sizde de olmaması mumkun degildi o yuzden:)
Kolay gelsin.
|
|
Yazar |
|
auzunun
Bursa
Kayıt: 15.01.2006 |
|
Hocam şimdi bilmiyom bu hatalar sadece bende mi oluyor baktım uzaktan erişime açıktı.
Ben yine de Sql Server(MSSQL) tekrar başlattım bağlanmaya tekrar çalıştım. Bu sefer borudan kurtulduk fakat nedense Cannot connect to AUZUN-PC Login failed for user 'sa' (ne alaka ise sanki dışarıdan bir bilgisayara bağlanmaya çalışıyor) diyor.
Öldüremiyorsan, yaralama.
|
|
Yazar |
|
timur
İstanbul
Kayıt: 19.01.2006 |
|
Windows kullanıcısı ile girdikten sonra Security->Logins kısmında sa kullanıcına bakarak aktif olup olmadığını kontrol edin(sa kullanıcısına sağ tıklayıp properties dedikten sonra status kısmına tıklayın. Orada kullanıcının Enable olduğuna emin olun). Eğer aktifse de şifresini doğru yazdığınıza emin olun.
Kolay gelsin...
Hayat varsa umut vard?r...
www.timureroglu.com
|
|
Yazar |
|
auzunun
Bursa
Kayıt: 15.01.2006 |
|
Başardım.
İlgileriniz için teşekkürler.
Öldüremiyorsan, yaralama.
|
|
Yazar |
|
watthana
uzayli
Kayıt: 02.02.2007 |
|
Selam Herkese başka başlık açmayayım dedim de...
sorun şöle bişey...
4 alandan olusan bir tabloya veri ekleyen bir procedure hazırladım...
CREATE PROCEDURE ekle @adı char,@soyadı char,@maası money,@yası int
AS
begin
insert into isci
values(@adı,@soyadı,@maası,@yası)
end
GO
bu sekılde procedure olusturuldu...
Sorgu kısmına gecınce...4 parametre ıle cagırmam ıcab edıyor...
EXEC ekle (?????) ==>>> asıl sorun bu işte
parametrelerı nasıl yazcuz bılen var mı aceb yawuu..!!!!
ASIKSAN YARE,
ALDANMA AGYARE...
|
|
Yazar |
|
auzunun
Bursa
Kayıt: 15.01.2006 |
|
şöyle denedin mi
EXEC ekle adı,soyadı,maas,yası
bi de burası sanki şöyle olması gerekiyor
insert into isci (adı,soyadı,maası,yası) --tablodaki değerler
values(@adı,@soyadı,@maası,@yası)
Öldüremiyorsan, yaralama.
|
|
Yazar |
|
iemre
Anadolu
Kayıt: 26.05.2007 |
|
Süper bi video buldum.Dat.Net ile store prosedürün birlikte kullanımını anlatıyor.Sanırım hem sql de nasıl kullanıldığını hemde Dat.Nette nasıl kullanıldığını çok kolay anlarsınız.5 MB kadar bişey.Hepinize kolay gelsin.
http://www.4shared.com/file/45927750/3fa87bf9/Store_P
More than one
|
|
Yazar |
|
tarikkranda
Kayıt: 07.01.2006 |
|
watthana yazdi | Selam Herkese başka başlık açmayayım dedim de...
sorun şöle bişey...
4 alandan olusan bir tabloya veri ekleyen bir procedure hazırladım...
CREATE PROCEDURE ekle @adı char,@soyadı char,@maası money,@yası int
AS
begin
insert into isci
values(@adı,@soyadı,@maası,@yası)
end
GO
bu sekılde procedure olusturuldu...
Sorgu kısmına gecınce...4 parametre ıle cagırmam ıcab edıyor...
EXEC ekle (?????) ==>>> asıl sorun bu işte
parametrelerı nasıl yazcuz bılen var mı aceb yawuu..!!!!
|
Oncelikle store procedure unde pamatrelerin char, varchar, nvarchar gibi ise bunlarin uzunlugunuda belirtmen gerekir dogru calismasi icin, ornegin char(50) gibi.
Onun haricinde procdeur cagirimi icin
EXEC ekle 'Tarik', 'Kranda', 100 vs. seklinde parametre geciyorsun.
OUTPUT parametresi var ise procedurunde bununda arkasina OUTPUT yazarak gonderebilirsin.
Ornegin:
Procedure olarak
CREATE PROCEDURE [dbo].[sp_InsertUser]
@ID int OUTPUT,
@nameOfUser nvarchar(50)
AS
BEGIN
INSERT INTO TBL_USERS(UserName) VALUES (@nameOfUser)
SET @ID = SCOPE_IDENTITY();
END
DECLARE @InsertedUserID int
EXEC sp_InsertUser @InsertedUserID OUTPUT, 'Tarık'
SELECT @InsertedUserID
Seklinde.
Kolay gelsin.
|
|
Yazar |
|
auzunun
Bursa
Kayıt: 15.01.2006 |
|
tarikkranda yazdi |
SET @ID = SCOPE_IDENTITY(); |
Hocam şu ne demek ben bir türlü anlayamadım. insert örneklerinde hep var herhalde kaydı alıp tabloya atmaya yarayan bi fonksiyon ID nin işlevini anlayamadım. Bir de çalıştırma kısmını anlatabilirseniz sevinirim neden sadece EXEC yeterli olmuyor diğerleri ne işe yarar
| DECLARE @InsertedUserID int SELECT @InsertedUserID |
Öldüremiyorsan, yaralama.
|
|
Yazar |
|
tarikkranda
Kayıt: 07.01.2006 |
|
auzunun yazdi | tarikkranda yazdi |
SET @ID = SCOPE_IDENTITY(); |
Hocam şu ne demek ben bir türlü anlayamadım. insert örneklerinde hep var herhalde kaydı alıp tabloya atmaya yarayan bi fonksiyon ID nin işlevini anlayamadım. Bir de çalıştırma kısmını anlatabilirseniz sevinirim neden sadece EXEC yeterli olmuyor diğerleri ne işe yarar
| DECLARE @InsertedUserID int SELECT @InsertedUserID |
|
Şimdi Burda veritabaninda TBL_USERS tablosunun 2 adet alani var diyelim birisi id numarasi, digeri kullanici adi. Biliyorsunuzki bu id alanlari genellikle kendi kendine 1 er 1 er artan identity alanlaridir. Dolayisilay Insert Into yaparken bu alana veriyi siz giremezsiniz, diger alanlara veri girersiniz o deger bir oncek kaydin 1 fazlasi olarak otomatik doldurulur.
Bu tip durumlarda, siz yeni bir kullanici bilgisini db ye insert ettiginizde, bunun id numarasi isinize yarayabilir. ACaba 1 artarak otomatik olarak olusturulan bu deger kactir sorusunun cevabini gonduruyor bize SCOPE_IDENTITY() fonksyonu. @@Identity degiskeni de ayni deger icin kullanilir. Yada INSERT INTO ifadelerindeki OUTPUT inserted.ID seklinde de ulasilabilir. Sonucta ben bu procedure de veri tabanina yeni bir kullanici sokuyorum, ve bu yeni yaratilan kullaniciya otomatik olarak bir onceki kaydin ID si 1 arttirilarak verilen numarayi geri almak istiyorum. Acaba kac numara verildi diye?
Bunun icin bu degeri SCOPE_IDENTITY() ile alip, SET @ID = SCOPE_IDENTITY(); ile @ID degiskenine depoluyorum.
Bunun haricinde EXEC satirinda OUTPUT yazmamin nedeni disarida DECLARE ile tanimladigim bir degiskeni fonksiyonun icine referans olarak gonderip, fonksiyon icinde degerini almasini sagliyorum yani burda @ID degiskeni disaridan gelmis demektir. Ben de onun icini doldurulmak icin gonderildi diye bildirmek icin yanina OUTPUT yaziyorum. ICeride set ettigim icin disaridan otomatik verilmis degeri okuyabiliyorum.
Umarim aciklayici olmustur.
|
|
Yazar |
|
watthana
uzayli
Kayıt: 02.02.2007 |
|
Teşekkürler....
Aynen Tarık hocanın dediği gibi procedure de boyutlarını belirtmek lazımmış - boyut belirtmeden denedim sadece ilk harfi alıyor...- ve exec kısmında da belirttiği gibi char türü olanlar ' ' icinde,int,money vs direk yazılıyor...
iyi akşamlar...
ASIKSAN YARE,
ALDANMA AGYARE...
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | | |