PDA

View Full Version : گفتگو: اطلاع از بروز شدن اطلاعات در بانک اطلاعاتی SQL در شبکه



ali_najari
شنبه 27 اسفند 1390, 09:11 صبح
با سلام خدمت اساتید و دوستان عزیزم

من برنامه ای دارم که چندکاربر همزمان از این برنامه در شبکه استفاده میکنند. حال اگر یک کاربر اطلاعات جدیدی در بانک اضافه نمود و یا ردیفی را اصلاح کرد چطوری میشه توی شبکه با خبر شد که بانک اطلاعاتی بروز شده است؟

فقط نمیخوام از تایمر یا Refresh بصورت دستی استفاده کنم!

راهی واسه این کار وجود داره که اگر بانک اطلاعاتی بروز شد پیغامی برای کاربران ارسال شود؟ یا برنامه بتونه تشخیص بده که اطلاعات بروز شده؟

Hybrid
شنبه 27 اسفند 1390, 09:45 صبح
سلام ،

راهی که به نظرم میرسه اینه که تعداد رکورد های داخل جدول رو داخل یک Setting ذخیره کنین و با هر بار اضافه یا حذف کردن ،تعداد رکورد های فعلی رو با Setting قبلی مقایسه کنید و یک پیغام به کاربران بفرستین سپس تعداد رکورد های جدید ذخیره میشن و ...

البته این نظر منه مطمئنا دوستان نظرات بهتری دارن.

فرید نجفلو
شنبه 27 اسفند 1390, 10:05 صبح
سلام ،

راهی که به نظرم میرسه اینه که تعداد رکورد های داخل جدول رو داخل یک Setting ذخیره کنین و با هر بار اضافه یا حذف کردن ،تعداد رکورد های فعلی رو با Setting قبلی مقایسه کنید و یک پیغام به کاربران بفرستین سپس تعداد رکورد های جدید ذخیره میشن و ...

البته این نظر منه مطمئنا دوستان نظرات بهتری دارن.

چرا؟؟!!
ایشون گفتن نمی خوان خودشون رفرش کنن!
وگر نه راه خیلی بهتری هست که استفاده از Triger ها ست که مخصوص چننین کارهایی هستن!

فرید نجفلو
شنبه 27 اسفند 1390, 11:45 صبح
دوست عزیز می تونید اطلاعات زیر رو بدید(می خوام طبق اونا واست کد رو بنویسم)؟
نام سرور (مثل SQLEXPRESS یا Local , ...)
نام پایگاه داده
نام Table(یا اینکه منظورت تمام جدول هاست؟)

(با SMO 10 (SQL 2008) که مشکلی نداری؟)

ali_najari
شنبه 27 اسفند 1390, 20:52 عصر
دوست عزیز می تونید اطلاعات زیر رو بدید(می خوام طبق اونا واست کد رو بنویسم)؟
نام سرور (مثل SQLEXPRESS یا Local , ...)
نام پایگاه داده
نام Table(یا اینکه منظورت تمام جدول هاست؟)

(با SMO 10 (SQL 2008) که مشکلی نداری؟)

من با SMO کار نکردم تا به حال!

نام سرورم متغیر هست که کاربر اون را انتخاب میکنه ولی به فرض مثال IT-PC
نام بانکم: Indicator
نام جدولم: IN_Letter

فرید نجفلو
شنبه 27 اسفند 1390, 22:14 عصر
نصفه روزه دنبال کار شمام:چشمک:

دوست عزیز من از تجربه شما مطلع نیستم برای همین باید بگم اگه تجربه کافی نداشته باشید مراحل کار شاید براتون یکم سخت باشه!

قبل از ارئه کد ها:
این روش ابتکاری خودمه اگه ایرادی داشت معذرت می خوام و لطف کنید ایرادات احتمالی رو به من هم اطلاع بدید:خجالت:
من این کد رو با SQL 2008 و دات نت 4 نوشتم و بروی سرور 2005 هم تست کردم مشکلی نداشت
بعد سفارشی سازی کد برای شما تست نکردم!:لبخندساده:
اگه کارکرد کد رو متوجه بشید با کمی تغییر کارهایه مفید و جالب زیادی می تونید با این کد ها انجام بدید:متفکر:
فایل های Dll مورد نیاز :

Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum

باضافه موارد عمومی(مثل System.Data و ...)

این Dll ها رو در حالت معمولی می تونید از مسیر زیر پیدا و رفرنس بدید:

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies


مرحله اول ایجاد Triger رویداد ساز:

کد زیر رو برای یک بار (فقط یک بار!) بر روی سرور مورد نظر اجرا کنید (یا از طریق برنامه خودتون یا بهتر از اون با SSMS)


USE [master]
GO
ALTER DATABASE [Indicator] SET ENABLE_BROKER WITH NO_WAIT
GO
USE [Indicator]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[IN_Letter_EventSender]
ON [dbo].[IN_Letter]
FOR INSERT,UPDATE,DELETE AS
BEGIN
BEGIN TRANSACTION
CREATE TABLE [dbo].[IN_Letter_Tmp_For_Event](
[ID] [bit] NULL
) ON [PRIMARY]
DROP TABLE [dbo].[IN_Letter_Tmp_For_Event]
COMMIT
END
GO


این کد برای هر پایگاه داده یک بار باید اجرا شود و یا در جایی از که پایگاه داده جدید رو ایجاد می کنید این کد رو هم در آخر عملیات اجرا کنید


حالا پروژه خودتون رو باز و یک کلاس (یا ماژول) جدید ایجاد و کد های زیر رو داخل اون وارد کنید:(رفرنس ها فراموش نشه!)



Imports Microsoft.SqlServer.Management.Smo
Public Class DatabaseWatcher
Private Shared WatcherServer As Server
Private Shared Sub Table_Changed(ByVal sender As Object, ByVal e As ServerEventArgs)
For Each prpty In e.Properties
If prpty.Value = "IN_Letter_Tmp_For_Event" Then
'Do Here!
MsgBox("اطلاعات جدول تغییر کرد!")
End If
Next
End Sub
Public Shared Sub RegisterEvent()
WatcherServer = New Server("IT-PC")
WatcherServer.ConnectionContext.AutoDisconnectMode = False
Dim db As Database
db = WatcherServer.Databases("Indicator")
Dim databaseCreateEventSet As New DatabaseEventSet
databaseCreateEventSet.DropTable = True
Dim serverCreateEventHandler As ServerEventHandler
serverCreateEventHandler = New ServerEventHandler(AddressOf Table_Changed)
db.Events.SubscribeToEvents(databaseCreateEventSet , serverCreateEventHandler)
db.Events.StartEvents()
End Sub
End Class


برای شروع در یک نقطه از برنامتون(مثلا اوایل اجرا) RegisterEvent رو از کلاس بالا صدا بزنید
کاری رو که می خواید انجام بدبد (مثلا رفرش ) رو با پیغام جایگذاری کنید

امید وارم مفید واقع بشه :لبخندساده:

ali_najari
یک شنبه 28 اسفند 1390, 23:43 عصر
از شما سپاس گذارم

ali_najari
جمعه 11 فروردین 1391, 19:59 عصر
نصفه روزه دنبال کار شمام:چشمک:

دوست عزیز من از تجربه شما مطلع نیستم برای همین باید بگم اگه تجربه کافی نداشته باشید مراحل کار شاید براتون یکم سخت باشه!

قبل از ارئه کد ها:
این روش ابتکاری خودمه اگه ایرادی داشت معذرت می خوام و لطف کنید ایرادات احتمالی رو به من هم اطلاع بدید:خجالت:
من این کد رو با SQL 2008 و دات نت 4 نوشتم و بروی سرور 2005 هم تست کردم مشکلی نداشت
بعد سفارشی سازی کد برای شما تست نکردم!:لبخندساده:
اگه کارکرد کد رو متوجه بشید با کمی تغییر کارهایه مفید و جالب زیادی می تونید با این کد ها انجام بدید:متفکر:
فایل های Dll مورد نیاز :

Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum

باضافه موارد عمومی(مثل System.Data و ...)

این Dll ها رو در حالت معمولی می تونید از مسیر زیر پیدا و رفرنس بدید:

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies


مرحله اول ایجاد Triger رویداد ساز:

کد زیر رو برای یک بار (فقط یک بار!) بر روی سرور مورد نظر اجرا کنید (یا از طریق برنامه خودتون یا بهتر از اون با SSMS)


USE [master]
GO
ALTER DATABASE [Indicator] SET ENABLE_BROKER WITH NO_WAIT
GO
USE [Indicator]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[IN_Letter_EventSender]
ON [dbo].[IN_Letter]
FOR INSERT,UPDATE,DELETE AS
BEGIN
BEGIN TRANSACTION
CREATE TABLE [dbo].[IN_Letter_Tmp_For_Event](
[ID] [bit] NULL
) ON [PRIMARY]
DROP TABLE [dbo].[IN_Letter_Tmp_For_Event]
COMMIT
END
GO


این کد برای هر پایگاه داده یک بار باید اجرا شود و یا در جایی از که پایگاه داده جدید رو ایجاد می کنید این کد رو هم در آخر عملیات اجرا کنید


حالا پروژه خودتون رو باز و یک کلاس (یا ماژول) جدید ایجاد و کد های زیر رو داخل اون وارد کنید:(رفرنس ها فراموش نشه!)



Imports Microsoft.SqlServer.Management.Smo
Public Class DatabaseWatcher
Private Shared WatcherServer As Server
Private Shared Sub Table_Changed(ByVal sender As Object, ByVal e As ServerEventArgs)
For Each prpty In e.Properties
If prpty.Value = "IN_Letter_Tmp_For_Event" Then
'Do Here!
MsgBox("اطلاعات جدول تغییر کرد!")
End If
Next
End Sub
Public Shared Sub RegisterEvent()
WatcherServer = New Server("IT-PC")
WatcherServer.ConnectionContext.AutoDisconnectMode = False
Dim db As Database
db = WatcherServer.Databases("Indicator")
Dim databaseCreateEventSet As New DatabaseEventSet
databaseCreateEventSet.DropTable = True
Dim serverCreateEventHandler As ServerEventHandler
serverCreateEventHandler = New ServerEventHandler(AddressOf Table_Changed)
db.Events.SubscribeToEvents(databaseCreateEventSet , serverCreateEventHandler)
db.Events.StartEvents()
End Sub
End Class


برای شروع در یک نقطه از برنامتون(مثلا اوایل اجرا) RegisterEvent رو از کلاس بالا صدا بزنید
کاری رو که می خواید انجام بدبد (مثلا رفرش ) رو با پیغام جایگذاری کنید

امید وارم مفید واقع بشه :لبخندساده:

با سلام و خسته نباشید خدمت شما دوست عزیز
من کد شما رو تست کردم ولی جواب نگرفتم
وقتی جدولم بروز میشه هیچ پیغامی ظاهر نمیشه

باید کد اولی رو توسط چه قسمتی توی SQL اجراش کنم؟

d_derakhshani
جمعه 11 فروردین 1391, 21:20 عصر
اول چيزي كه بايد گفت اينه كه دسترسي مستقيم كلاينت ها به ديتابيس روش بسيار اشتباهيه كه خيلي هم مرسومه متاسفانه و نمي دونم چرا كسي نيست كه اطلاع رساني كنه و جلوي اين نحوه نوشتن برنامه ها گرفته شه. وقتي كلاينت ها مستقيم به ديتابيس وصل ميشن connection string بايد سمت كلاينت موجود باشه، شما حالا هر چقدر رمز نگاري هم كنيد باز به راحتي قابل دستيابيه(براي اينكه كدهاي شما قابل decompile).
براي دسترسي به ديتابيس مي بايست يك لايه سرويس(كه ميتونه WCF، وب سوريس و يا در بدترين حالت يك برنامه listener بر روي سوكت باشه) در سرور قرار بگيره. سرويس تنها برنامه ايه كه ميتونه به پايگاه داده وصل شه و از ساختار اون با خبره. در عوض كلاينت ها روي سرويس authenticate ميكنه و توابع اون رو فراخواني ميكنه بدون اينكه بدونه اونها چه عملي انجام ميدهند(به ديتابيس وصل ميشن، نميشن ديگه مهم نيست). در نتيچه امنيت كامل از لحاظ پايگاه داده تامين ميشه.
در اين معماري مشكل شما هم حل ميشه. از اونجا كه هر عملي بر روي پايگاه داده از يك تابع خاص ميگذره در نتيجه هميشه ميدونيم كي چه اتفاقي روي پايگاه داده ميافته. مي تونيد از پترن observer/publisher استفاده كنيد(به عبارت بهتره ايجاد synchronizer با استفاده از observer/publisher) و تمامي كلاينت ها رو از تغيير با خبره كرده و يا اون ها رو update كنيد.
اگه از WCF استفاده مي كنيد مي تونيد از Duplex communication استفاده كنيد.

اين بهترين و اصولي ترين روش توليد برنامه هايي هست كه به صورت كلاينت سروري با پايگاه داده ارتباط بر قرار مي كنند.

ali_najari
شنبه 12 فروردین 1391, 01:59 صبح
دوست عزیز مشکل حل شد
حال یه سوال دیگه که هست اینکه که اونجایی که گفتید کدهای مورد نظرم رو بنویسم میخواستم بدونم اگر بخواهم مثلا فرم 1 رو بروز رسانی کنم باید چیکار کنم؟
هر کاریش کردم حل نشد فقط اگر به یه تابع بفرستم که توش مسیج باشه فقط مسیج رو اجرا میکنه

یعنی اگر بخواهم که اطلاعات دیتاگیرید رو واسم بروز کنه باید چیکار کنم؟

barnamenevisforme
شنبه 12 فروردین 1391, 13:14 عصر
مطلب دوست عزیز farid.n مفید بود.اما در مورد مطلب derakhshani اگه یه برنامه نمونه میذاشتن خیلی خوب بود.

فرید نجفلو
شنبه 12 فروردین 1391, 13:20 عصر
جواب در تاپیک خودتون:
بروز رسانی فرم از داخل یک کلاس (http://barnamenevis.org/showthread.php?334434-بروز-رسانی-فرم-از-داخل-یک-کلاس)

d_derakhshani
شنبه 12 فروردین 1391, 13:46 عصر
مطلب دوست عزیز farid.n مفید بود.اما در مورد مطلب derakhshani اگه یه برنامه نمونه میذاشتن خیلی خوب بود.
دوست عزيز متاسفانه به دليل كمبود وقت نمي تونم نمونه پروژه بذارم. اما به لينكهاي زير سر بزنيد اگه خوب دركشون كنيد كاملا مفيده
توصيه شده مخصوص شما:
http://code.msdn.microsoft.com/windowsdesktop/Database-SyncSQL-Server-e97d1208 (http://code.msdn.microsoft.com/windowsdesktop/Database-SyncSQL-Server-e97d1208)
ساير:
http://www.codeproject.com/Articles/17704/WCF-Duplex-Operations-and-UI-Threads (http://code.msdn.microsoft.com/windowsdesktop/Database-SyncSQL-Server-e97d1208)
http://msdn.microsoft.com/en-us/magazine/cc163321.aspx
http://msdn.microsoft.com/en-us/sync/default.aspx

ali_najari
پنج شنبه 29 تیر 1391, 10:45 صبح
با سلام و خسته نباشید

دوست عزیز من کد شما رو روی کامپیوتر خودم اجرا میکنم و بدون مشکل کار میکنه ولی وقتی میخوام برنامه رو به بانک اطلاعتی بر روی سرور ارتباط بدم خطای زیر رو میده:

Cannot create an event subscription. failed.

من حتی UAC رو هم Disable کردم ولی باز کار نکرد.

ali_najari
جمعه 30 تیر 1391, 23:09 عصر
ﻫﻴﭻ ﻛﺲ ﺗﺎ ﺣﺎﻻ ﺑﻪ ﺍﻳﻦ ﻣﺸﻜﻞ ﺑﺮ ﻧﺨﻮﺭﺩﻩ ﻭﺍﻗﻌﺎ؟

مرتضی حمزه ئی
شنبه 31 تیر 1391, 07:59 صبح
باسلام خدمت دوستان
درلینک زیر مثالی برای این موضوع آورده ام تست کنید
http://barnamenevis.org/showthread.php?138824-استفاده-از-sql-notification-با-مثال&p=654302#post654302

ali_najari
شنبه 31 تیر 1391, 13:21 عصر
دوست عزیز من کد شما رو امتحان کردم و متوجه شدم که بصورت اتوماتیک اطلاعات در حال Refresh شدن هستش و فرم رو خیلی کند میکنه

کدی که دوست عزیزم زحمت کشیدن اطلاعات زمانی بروز میشه که جدول مورد نظر تغییر کرده باشه.

ali_najari
شنبه 31 تیر 1391, 23:38 عصر
دوستان هیچ کسی نمیدونه اشکال از کجاست؟

آیا ایراد از تنظیمات خود ویندوز هستش یا مربوط به SQL Server ؟
من توی سایت های غیر ایرانی هم چیری پیدا نکردم اصلا

barnamenevisforme
شنبه 31 تیر 1391, 23:54 عصر
سلام

دوست عزیز من کد شما رو روی کامپیوتر خودم اجرا میکنم و بدون مشکل کار میکنه ولی وقتی میخوام برنامه رو به بانک اطلاعتی بر روی سرور ارتباط بدم خطای زیر رو میده:
در مورد برنامه معمول قبلی چی،اونو تونستید با server ارتباط بدید؟یا اینکه اون هم مشکل داره.

ali_najari
یک شنبه 01 مرداد 1391, 00:18 صبح
نه هنوز نتونستم این کار رو انجام بدم!

barnamenevisforme
یک شنبه 01 مرداد 1391, 00:24 صبح
http://barnamenevis.org/showthread.php?347927
با کمترین امنیت

ali_najari
یک شنبه 01 مرداد 1391, 08:41 صبح
دوست عزیز من تمام این کارها رو انجام دادم ولی باز هم همون پیغام رو به من میده!!

اطلاعات جدول را که Select میزتم رو میاره ولی اون قسمت مربوط به Watcher راهمون خطای قبل رو میده!

rahime
یک شنبه 01 مرداد 1391, 09:34 صبح
سلام
من اولین باره میخوام sqlserver2000 رو بیارم تحت شبکه.
میشه مراحل انجام کارش رو بهم بگین و راهنمایی کنین .مرسی

barnamenevisforme
یک شنبه 01 مرداد 1391, 12:17 عصر
سلام

اطلاعات جدول را که Select میزتم رو میاره ولی اون قسمت مربوط به Watcher راهمون خطای قبل رو میده!
اجازه های مربوط به user اضافه شده در بخش databaseuser رو فعال کنید.مخصوصا تیک dbowner

سلام
من اولین باره میخوام sqlserver2000 رو بیارم تحت شبکه.
میشه مراحل انجام کارش رو بهم بگین و راهنمایی کنین .مرسی
اینم طبق همون لینک قبل انجام میشه،فقط یه فرق کوچک داره اونم اینه که دو تا جای خالی که الان دقیقا خاطرم نیست عبارتش چی بود.
موقع اضافه کردن user توی اون دو تا بخش هم یه کپی از گزینه اصلی رو قرار بدید.مثلا server/guest

با کمترین امنیت
از دوستان کسی راه بهتری سراغ داره واسه استفاده از مد windows authentication
ممنون

alimanam
یک شنبه 01 مرداد 1391, 18:07 عصر
با سلام


اطلاعات جدول را که Select میزتم رو میاره ولی اون قسمت مربوط به Watcher راهمون خطای قبل رو میده!

این خطا به دلیل نداشتن مجوز لازم یوزری هست که در کانکشن استرینگ استفاده میکنین رخ میده . درضمن شما به راحتی میتونین از روش SqlDependency نیز استفاده کنین . در لینکی که براتون ذکر کردم گام به گام همراه با عکس و کدهای مربوطه توضیح داده اگر سوالی در این زمینه بود تا جایی که بتونم راهنمایتون میکنم .

Using SqlDependency To Monitor SQL Database Changes (http://www.dreamincode.net/forums/topic/185244-using-sqldependency-to-monitor-sql-database-changes/)

موفق باشید./

ali_najari
دوشنبه 02 مرداد 1391, 01:03 صبح
با سلام



این خطا به دلیل نداشتن مجوز لازم یوزری هست که در کانکشن استرینگ استفاده میکنین رخ میده . درضمن شما به راحتی میتونین از روش SqlDependency نیز استفاده کنین . در لینکی که براتون ذکر کردم گام به گام همراه با عکس و کدهای مربوطه توضیح داده اگر سوالی در این زمینه بود تا جایی که بتونم راهنمایتون میکنم .

Using SqlDependency To Monitor SQL Database Changes (http://www.dreamincode.net/forums/topic/185244-using-sqldependency-to-monitor-sql-database-changes/)

موفق باشید./

با تشکر خیلی زیاد از شما و سایر دوستانی که بهم دارن کمک میکنن

دوست عزیز میشه لطف کنید و بگید چه دسترسی هایی رو باید حتما فعال کنم؟

اخه من دارم از یوزر Sa استفاده میکنم توی سیستم خودم و جواب میده ولی وقتی میخوام از یک PC دیگه به سیستم خودم وصل بشم باز همون پیغام رو میده بهم!

در روش SqlDependency که یکی دیگه از دوستان زحمت کشیدن من این کارو کردم ولی داره مدام فرم رو Refresh میکنه یه جوری مثل تایمر و فرمم خیلی هنگه!

ali_najari
دوشنبه 02 مرداد 1391, 01:36 صبح
دوست عزیز من از SqlDependency روی کامپیوتر سر کار استفاده کردم همون مشکلی که گفتم رو داشت

ولی الان روی کامپیوتر خونه که استفاده میکنم اصلا حتی یکبار هم Select نمیکنه

alimanam
دوشنبه 02 مرداد 1391, 12:58 عصر
با سلام


در روش SqlDependency که یکی دیگه از دوستان زحمت کشیدن من این کارو کردم ولی داره مدام فرم رو Refresh میکنه یه جوری مثل تایمر و فرمم خیلی هنگه!

بسته به شرایط شبکه شما ممکنه سرعت این روش متغییر باشه ولی شما به راحتی میتونین این سرعت العمل رو بوسیله نخ مدیریت کنی که فرم برنامه شما فریز نشه .


ولی الان روی کامپیوتر خونه که استفاده میکنم اصلا حتی یکبار هم Select نمیکنه

منظور شما رو از Select نمیکنه رو متوجه نمیشم ! در روشی که من بهتون لینک داده بودم شما گام به گام پیش برین فکر نمیکنم چیز سختی باشه .

موفق باشید./

ali_najari
دوشنبه 02 مرداد 1391, 19:22 عصر
با سلام



بسته به شرایط شبکه شما ممکنه سرعت این روش متغییر باشه ولی شما به راحتی میتونین این سرعت العمل رو بوسیله نخ مدیریت کنی که فرم برنامه شما فریز نشه .



منظور شما رو از Select نمیکنه رو متوجه نمیشم ! در روشی که من بهتون لینک داده بودم شما گام به گام پیش برین فکر نمیکنم چیز سختی باشه .

موفق باشید./

دوست عزیز من همان روش شما رو هم گام به گام پیش رفتم و همان پروژه روی سیستم سر کارم جواب میده ولی خونه جواب نمیده!

چطوری میشه سرعت رو کنترل کرد که فرم فریز نشه؟

barnamenevisforme
دوشنبه 02 مرداد 1391, 19:35 عصر
سلام

اخه من دارم از یوزر Sa استفاده میکنم توی سیستم خودم و جواب میده ولی وقتی میخوام از یک PC دیگه به سیستم خودم وصل بشم باز همون پیغام رو میده بهم!روشی که من توضیح دادم واسه استفاده از windows authentication هست.شما در حال استفاده از sqlserver authentication هستید.
موقع تعریف connection string میتونید این موضوع رو عوض کنید.

بسته به شرایط شبکه شما ممکنه سرعت این روش متغییر باشه ولی شما به راحتی میتونین این سرعت العمل رو بوسیله نخ مدیریت کنی که فرم برنامه شما فریز نشه .با تشکر از جناب alimanam (http://barnamenevis.org/member.php?43498-alimanam) به خاطر ارائه راه حلشون.
اگه ممکنه این موضوع رو از زبون خودتون به طور واضح توضیح بدین،ممنون.

ali_najari
سه شنبه 03 مرداد 1391, 08:57 صبح
روشی که من توضیح دادم واسه استفاده از windows authentication هست.شما در حال استفاده از sqlserver authentication هستید.
موقع تعریف connection string میتونید این موضوع رو عوض کنید.


میشه یه نمونه Connection String برای استفاده از Guest واسم بگذارید؟ من هرچی سعی کردم نتونستم

alimanam
سه شنبه 03 مرداد 1391, 17:49 عصر
با سلام


اگه ممکنه این موضوع رو از زبون خودتون به طور واضح توضیح بدین،ممنون.

میشه یه نمونه Connection String برای استفاده از Guest واسم بگذارید؟ من هرچی سعی کردم نتونستم

سعی میکنم یکی دو روز دیگه با سورس کامل و به صورت گام به گام مراحل رو تا انتها توضیح بدم .

موفق باشید./

barnamenevisforme
چهارشنبه 04 مرداد 1391, 11:59 صبح
سلام
Data Source=SERVERNAME;Initial Catalog=DBNAME;Integrated Security=True

سعی میکنم یکی دو روز دیگه با سورس کامل و به صورت گام به گام مراحل رو تا انتها توضیح بدم .

ممنون از لطف شما

ali_najari
پنج شنبه 19 مرداد 1391, 11:30 صبح
دوستان کسی نتونست این مشکل رو حل کنه یا یه راه حل بهتر پیدا کنه؟

من میخوام یه تیریگر ایجاد کنم که اگر جدولم تغییر کرد توی یه جدول دیگه باید یه اطلاعاتی ثبت کنه و من با استفاده از Timer اون جدول که اطلاعات کمی داره را بخونم درصورتی که جدول بروز شد منم اطلاعاتم رو Refresh کنم

به نظر شما این راه درستی هست؟

Majid842
دوشنبه 06 شهریور 1391, 21:32 عصر
با تشکر از همه
من با این خطا مواجع شدم؟؟؟؟
91940

alimanam
سه شنبه 07 شهریور 1391, 01:07 صبح
با سلام


دوست عزیز من از SqlDependency روی کامپیوتر سر کار استفاده کردم همون مشکلی که گفتم رو داشت
دوستان کسی نتونست این مشکل رو حل کنه یا یه راه حل بهتر پیدا کنه؟

مقاله ایی که قولش رو داده بودم رو میتونین از اینجا (http://barnamenevis.org/showthread.php?358390)دانلود کنین .

موفق باشید./