Payam Moradi
دوشنبه 04 آبان 1383, 09:02 صبح
سلام
یک سلام مخصوص هم خدمت hmm
در تاپیک قبلی بحث نصب برنامه روی سرور و کلاینت شد. من یک مشکل در این مورد دارم.
یک فایل Exe که همون برنامه و یک فایل Access قسمت اصلی برنامه رو تشکیل دادند. حالا هر طور که اینا رو شبکه نصب شده باشند (یا میانبر از سرور به کلاینت ها و یا قرار دادن یک فایل Exe در هر کلاینت (همون که hmm میگفت)).
وقتی در یکی از کلاینت ها یا سرور اطلاعات آپدیت میشه، یعنی رکوردی تغییرات درش انجام میدن در همان لحظه در تمام سیستمهای دیگر آپدیت (یا تغییرات جدید) مشاهده میشه. تا اینجا مشکلی نداره. ولی وقتی در یکی از سیستم ها رکورد جدیدی ایجاد میشه، تا سیستم های دیگر در شبکه از برنامه خارج و ورود مجدد نشن، نمی تونن رکورد جدید رو ببینن. (منظورم اینه که تا رکوردست در بقیه برنامه ها بسته و مجددا باز نشه و یا اینه Requery نشه نمی تونن رکورد های اضافه شده رو ببینن).
برای همین مجبور شدم یک کلید برای بازیابی اطلاعات جدید (یا همون Refresh) در هر برنامه تعبیه کنم.
حالا یعنی من تنظیمات رکورد ست رو اشتباه انجام میدم یا این مشکل طبیعیه.
من از ADODB برای اتصال استفاده میکنم. بدین صورت :
Dim r As New ADODB.Recordset
r.CursorLocation = adUseServer
r.Open "SELECT * FROM Table1;", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mymdb.mdb;Mode=ReadWrite;Persist Security Info=False;", adOpenStatic, adLockOptimistic
تنظیمات بالا رو هم به هر شکل عوض کردم نتیجه نگرفتم. :(
ضمنا شبکه بدین صورته که چند کامپیوتر با یک هاب و کابل و کارت شبکه به لینک شدن و هر کامپیوتر، کامپیوتر دیگه رو تو خودش میبینه. در واقع سروری وجود نداره.
البته من این رو در سیستم خودم با اجرای دوبار یک برنامه هم آزمایش میکنم که همون نتیجه رو میده. (یعنی برنامه exe رو دوبار تو کامپیوترم اجرا میکنم. در نتیجه انگار دو نفر دارن باهاش کار میکنند.) به هر حال فرقی نداری تو شبکه هم همین مشکل هست.
ممنون میشم اشکال رو بگید :)
یک سلام مخصوص هم خدمت hmm
در تاپیک قبلی بحث نصب برنامه روی سرور و کلاینت شد. من یک مشکل در این مورد دارم.
یک فایل Exe که همون برنامه و یک فایل Access قسمت اصلی برنامه رو تشکیل دادند. حالا هر طور که اینا رو شبکه نصب شده باشند (یا میانبر از سرور به کلاینت ها و یا قرار دادن یک فایل Exe در هر کلاینت (همون که hmm میگفت)).
وقتی در یکی از کلاینت ها یا سرور اطلاعات آپدیت میشه، یعنی رکوردی تغییرات درش انجام میدن در همان لحظه در تمام سیستمهای دیگر آپدیت (یا تغییرات جدید) مشاهده میشه. تا اینجا مشکلی نداره. ولی وقتی در یکی از سیستم ها رکورد جدیدی ایجاد میشه، تا سیستم های دیگر در شبکه از برنامه خارج و ورود مجدد نشن، نمی تونن رکورد جدید رو ببینن. (منظورم اینه که تا رکوردست در بقیه برنامه ها بسته و مجددا باز نشه و یا اینه Requery نشه نمی تونن رکورد های اضافه شده رو ببینن).
برای همین مجبور شدم یک کلید برای بازیابی اطلاعات جدید (یا همون Refresh) در هر برنامه تعبیه کنم.
حالا یعنی من تنظیمات رکورد ست رو اشتباه انجام میدم یا این مشکل طبیعیه.
من از ADODB برای اتصال استفاده میکنم. بدین صورت :
Dim r As New ADODB.Recordset
r.CursorLocation = adUseServer
r.Open "SELECT * FROM Table1;", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mymdb.mdb;Mode=ReadWrite;Persist Security Info=False;", adOpenStatic, adLockOptimistic
تنظیمات بالا رو هم به هر شکل عوض کردم نتیجه نگرفتم. :(
ضمنا شبکه بدین صورته که چند کامپیوتر با یک هاب و کابل و کارت شبکه به لینک شدن و هر کامپیوتر، کامپیوتر دیگه رو تو خودش میبینه. در واقع سروری وجود نداره.
البته من این رو در سیستم خودم با اجرای دوبار یک برنامه هم آزمایش میکنم که همون نتیجه رو میده. (یعنی برنامه exe رو دوبار تو کامپیوترم اجرا میکنم. در نتیجه انگار دو نفر دارن باهاش کار میکنند.) به هر حال فرقی نداری تو شبکه هم همین مشکل هست.
ممنون میشم اشکال رو بگید :)