PDA

View Full Version : مشکل اکسس با وی بی



سمیه بختیاری
شنبه 25 مهر 1383, 14:38 عصر
سلام

من یه پروژه دیتا بیس وی بی و اکسس نوشتم حالا می خواهم روی شبکه نصب کنم
به نظر شما روی سرور نصب کنم یا روی کلاینت ها بع exe اش را share کنم

یه مشکل دیگه که روی سرور هم تا حالا نصبش نکردم
ـــــــــــــــــــــــــ
مرسی :flower:

کم حوصله
شنبه 25 مهر 1383, 23:13 عصر
ببخشید ولی تا جایی که من می دونم برنامه های با دیتابیس اکسس فقط برای مصارف به صورت سینگل استفاده می شوند نه به صورت تحت شبکه

برای اجرای برنامه کافی است یک فولدر در سرور بسازید و آن را Sher کنید سپس فقط فایل اجرایی و دیتابیس را در آن بریزید و بعد شورت کات آن برنامه را در سیستم های استیشن بگذارید
علت هم این است که با این کار عملا تمام کاربران یک برنامه را اجرا می کنند و همگی از یک دیتابیس استفاده می کنند
ضمنا نیاز نیست بر روی سرور برنامه یا کامپوننت های آن نصب شود بلکه باید روی تمام استیشن ها به صورت کامل برنامه نصب شده و کامپوننت ها هم نصب شود و فقط فایل اجرایی از روی سرور اجرا شود

ناگفته نماند که این کار ( SHER کردن برنامه با دیتابیس اکسس ) بسیار اشتباه و بسی مشکلات زیادی به دنبال خواهد داشت که اصلا توصیه نمی شود برای برنامه های تحت شبکه حتما به دیتابیس های تحت شبکه مثل SQL , DB2 , .... مراجعه کنید

ali2914
یک شنبه 26 مهر 1383, 07:56 صبح
کم حوصله عزیز چرا(
ناگفته نماند که این کار ( SHEAR کردن برنامه با دیتابیس اکسس ) بسیار اشتباه و بسی مشکلات زیادی به دنبال خواهد داشت)؟ من قبلا دقیقا به همین صورت که گفتین دیتابیس اکسس رو در یک برنامه قرار دادم و در شبکه shearکردم مشکل خاصی نبود لطفا بگین چه مشکلاتی ممکنه پیش بیاد؟ممنونbye

vbprogramer
یک شنبه 26 مهر 1383, 12:17 عصر
من هم میخواهم همچین کاری بکنم اگه اشتباه هستش بگین نرم دنبالش

bahar60
دوشنبه 27 مهر 1383, 07:54 صبح
من هم همین مشکل را دارم
میشه یه کمی بیشتر توضیح بدید(اقای/خانم کم حوصله عزیز) :confy2:



ـــــــــــــــــــــــــ ــــــــــــــ
مرسی دوستان

hmm
دوشنبه 27 مهر 1383, 09:18 صبح
سلام
دیتابیس اکسس در شبکه مشکل چندانی ندارد البته اگه تعداد یوزرها کم باشه و تعداد رکورد ها هم از 500000 بیشتر نباشه و شبکه هم سرعت قابل قبولی داشته باشه اتفاقا برای کارهای کوچک (برنامه های نچندان بزرگ) استفاده از دیتابیس های کم حجم توصیه میشه یعنی شما دیگه خودتون رو درگیر تنظیمات و مدیریت اس کیو ال سرور نمیکنید البته اگه بحث امنیت هم زیاد مهم نباشه

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

کم حوصله
دوشنبه 27 مهر 1383, 23:28 عصر
خوب دوستمون کاملا مشکلات آن را بر شمردند :flower:

vbprogramer
سه شنبه 28 مهر 1383, 07:23 صبح
جناب hmm عزیز میشه در حالتی که بخواهیم برنامه رو از روی سیستم کاربر اجرا کنیم و بانک روی سرور باشه مسیر دهی بانک رو هم توضیح بدین :wink3:




با تشکر از شما :flower:

کم حوصله
جمعه 01 آبان 1383, 20:38 عصر
اگر مسیر بانک که قرار است روی سرور باشد را از قبل بدانید می توانید بدین صورت عمل کنید



//ServerName/FolderName/YourBankName.mdb

Payam Moradi
جمعه 01 آبان 1383, 21:52 عصر
اگه بخواهید فرمها رو هم ار سمت سرور اجرا کنید هم سرعت پردازش سرور رو پایین آوردید هم پهنای باند شبکه رو اشغال کردید چون همانطور که میدانید حجم فرمهای ویندوز(بعلت گرافیکی بودن) زیاده

جناب hmm تا اونجایی که من میدونم و تجربه کردم هر برنامه Exe ابتدا از روی هارد به حافظه منتقل شده و اجرا مشود. حالا میخواد این برنامه روی شبکه باشه یا روی هارد خودتون. ضمنا اگر حافظه برای اجرای برنامه Exe کافی نباشه ویندوز از حافظه مجازی در هاردی که برنامه در حافظه آن سیستم مقیم است استفاده میکند.
میتوان لینک فایل Exe را در client ها قرار داد بدون اینکه مشکلی پیش آید. من این کار رو کردم و بدون مشکل کار ادامه دارد. ضمنا تعداد رکوردهای برنامه هایی که من تا حالا نصب کردم فکر کنم از مرز میلیون گذشته باشه بدون اینکه سرعت پردازش کم شده باشه.
البته حرف شما هم صحیح است بهتر است برای برنامه های با کاربر کم و کارهای کوچک این کار را انجام داد. سرعت شبکه هم باید قابل قبول باشد.
حالا هر طور صلاح است عمل کنید. :wink:
من در قسمت "مباحث مربوط به اکسس" در پاسخ سوال خانم بختیاری نحوه نصب را توضیح دادم. 8)
اینم لینکش:
http://www.barnamenevis.org/forum/viewtopic.php?p=85442

موفق باشید :flower:

vbprogramer
شنبه 02 آبان 1383, 09:05 صبح
اگر مسیر بانک که قرار است روی سرور باشد را از قبل بدانید می توانید بدین صورت عمل کنید



//ServerName/FolderName/YourBankName.mdb


اگه ندونم چی ؟
چه جوری میتونم سرور رو پیدا کنم ؟ :گیج:

hmm
شنبه 02 آبان 1383, 14:00 عصر
جناب hmm تا اونجایی که من میدونم و تجربه کردم هر برنامه Exe ابتدا از روی هارد به حافظه منتقل شده و اجرا مشود. حالا میخواد این برنامه روی شبکه باشه یا روی هارد خودتون.

شما هنوز مفهموم کلاینت/سرور رو دقیقا نمیدونید
مگه exe قراره از رو سرور اجرا بشه که حافظه سرور رو اشغال کنه تمام exe یا لااقل آن بخشی که کاربر درخواست کرده از طریق شبکه به کامپیوتر کلاینت انتقال داده میشه و از روی کلاینت اجرا میشه
بهمین دلیله که احتیاجی نیست برنامه را رو سرور نصب کنید و ایضا حتما باید برنامه را رو کلاینتها نصب کنید
و انتقال فرمها هم سرعت شبکه رو کم میکنه


ضمنا اگر حافظه برای اجرای برنامه Exe کافی نباشه ویندوز از حافظه مجازی در هاردی که برنامه در حافظه آن سیستم مقیم است استفاده میکند.
حرفتون کاملا اشتباهه (شاید در مورد برنامه های singel و آنهم در موارد خاص درست باشه ولی در این نوع برنامه ها اصلا از حافظه سرور برای این منظور استفاده نمیشه)


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

من خودم تا 5 میلیون رو کار کردم مشکلی هم نداشتم :mrgreen:
فقط تعداد رکورد های یک جدول دلیل بر کاهش محسوس سرعت اکسس نمیشه
مهم اینه که اکسس برای ترکیب چند جدول با تعداد رکورد های بالا و برای خواندن/نوشتن سریع در این حجم و با عنایت به رعایت اعمال جامعیت اطلاعات و رعایت وابستگیها چگونه عمل میکنه
مثلا در بانکی که عرض کردم 10 جدول وجود داشت که هر کدام دیگر حداقل 100000 رکورد و حداکثر 500000 رکورد وجود داشت برای یک کوری ساده و ترکیب تنها دو جدول فقط کمی کمتر از 6 ساعت معطل شدم :مسخره:

hmm
شنبه 02 آبان 1383, 14:03 عصر
اگه ندونم چی ؟
چه جوری میتونم سرور رو پیدا کنم ؟

پس بانک رو کجا میخوای بگذاری ؟
اگه روی یک کامپیوتره که حتما یه اسمی داره دیگه؟

Payam Moradi
شنبه 02 آبان 1383, 21:12 عصر
جناب hmm من که نمیگم از حافظه سرور استفاده میشه. هر کلاینت برنامه رو در لحظه اول میریزه تو حافظه خودش بعد اجرا میکنه. فرقی نداره برنامه exe رو هارد خودش باشه، رو web باشه، رو شبکه باشه یا هر جا دیگه. بعضی وقتها هم حافظه کم میاره ویندوز هر سیستم (یا هر کلاینت) از حافظه مجازی کمک میگیره.
پردازش هر برنامه هم روی همون سیستمی صورت میگیره که برنامه روی حافظه اش مقیم شده. :wink:

البته قبول دارم که لحظه اول اجرای برنامه تمام حجم برنامه از کابل میاد تو حافظه سیستمهای کلاینت. به هر حال هر طور صلاحه. شاید شما تجربت بیشتره. ولی من تا حالا مشکلی نداشتم.
ثابت کردن حرفهای من و شما رو اجازه بدید از این جا به بعد بگذاریم برای بقیه اعضا. خودشون هر دو جور رو آزمایش کنند و هر کدوم رو بهتر دونستند کار کنند. 8)

اگه بقیه دوستان و استاتید حرف من رو تکذیب میکنند، من حمین الان بلند میشم نحوه نصب برنامه ها رو روی شبکه تغییر میدم. :)
ممنون میشم اگه بگن. شاید هم من اشتباه میکنم. :متفکر:

hmm
یک شنبه 03 آبان 1383, 07:42 صبح
. فرقی نداره برنامه exe رو هارد خودش باشه، رو web باشه، رو شبکه باشه
مگه میشه exe رو web باشه ؟ :strange: ببین دوباره یه چیزی پروندی :mad:
این از حرف قبلیت

ضمنا اگر حافظه برای اجرای برنامه Exe کافی نباشه ویندوز از حافظه مجازی در هاردی که برنامه در حافظه آن سیستم مقیم است استفاده میکند.

اینهم از حرف العانت

بعضی وقتها هم حافظه کم میاره ویندوز هر سیستم (یا هر کلاینت) از حافظه مجازی کمک میگیره.
از کدوم درایو؟

ثابت کردن حرفهای من و شما رو اجازه بدید از این جا به بعد بگذاریم برای بقیه اعضا. خودشون هر دو جور رو آزمایش کنند و هر کدوم رو بهتر دونستند کار کنند.

اولا :ما اینجا چیزی رو ثابت نمیکنیم
دوما: چرا کاری که اشتباهه رو بقیه هم باید آزمایش کنند شاید شما به لطف سرعت بالای سرور و ایضا شبکه و حجم کم اطلاعات تغییر محسوسی در سرعت اجرا برنامه مشاهده نکنید ولی این کار فی نفسه اشتباهه

Payam Moradi
یک شنبه 03 آبان 1383, 09:25 صبح
سلام hmm

اولا آره. خود شما چند بار Exe از وب گرفتی و بعد از روی هارد خودت اجرا کردی. اونم موقع اجرا برنامه رو روی حافظه میبره.
خب بابا. قبول حافظه کشکه. اصلا من میرم حافظه (ram) کامپیوترم رو برمیدارم. خوبه. برنامه ها بدون نیاز به حافظه اجرا میشند. حالا چه با از شبکه چه بی شبکه. :P

دیگه چی. خوبه؟ :mrgreen:

موفق باشید :flower:

سمیه بختیاری
یک شنبه 03 آبان 1383, 12:59 عصر
سلام

از راهنمایی همه ممنونم خیلی خوشحالم که یه روی یه موضوع دوستانه ( :strange: ) بحث می شه این جوری آدم همه جوانب کار رو می فهمه :mrgreen:
من الان آخر برنامه نویسی و نصب اون تحت شبکه ام :wise1:

فقط تورو خدا اگر عصبانی نمی شید من یه کار مسخره ای انجام دادم اون هم اینه که من از conection string استفاده کردم و این کانکشن را در همه فرم هام باز وبسته کردم ، :oops: حالا وقتی بخوام پروژه را روی سرور نصب کنم باید این کانکشن استرینگه عوض بشه تازه من این پروژه را در منزل نوشتم که برای تست کردن برنامه ام سروری در کار نبوده یعنی میگید من باید یه فرمی بنویسم که این کانکشن را بعد از نصب روی سرور (بعنوان مثال مسیر دیتا بیس) از ورودی بگیره ، به عبارتی از طریق آن بتوان دستی ست کرد :roll:


باز هم از راهنمایی و بحث همه دوستان ممنونم :flower: :flower: :flower: :flower: :flower: :flower:

hmm
یک شنبه 03 آبان 1383, 13:17 عصر
خود شما چند بار Exe از وب گرفتی و بعد از روی هارد خودت اجرا کردی
مجید جان دلبندم اون دانلوده نه اجرا از رو وب
دوباره هم یک چیزی رو پروندی (این دفعه سومته ها...)

اما درمورد سوال خانم بختیاری
یکی از علتهایی که ملت فکر میکنن برنامه تحت شبکه خیلی سرعتش پایینه بی اطلاعی از چگونگی برنامه نویسیه
شما لازم نیست در هر فرمتون یک کانکشن بسازید و آنرا بازوبسته کنید فقط کافیه ابتدای برنامه کانکشن به بانک وصل بشه و تا آخر هم باز بمونه و تمام رکوردست ها و کامندها از طریق این کانکشن جواب بگیرن
اگه طرز تعریف یک کانکشن سراسری رو نمیدونید بفرمایید تا توضیح بدهم (دقیقا مثل تعریف متغیر سراسری)
ودر مورد محل بانک راههای مختلفی وجود داره یکی رو خودتون فرمودین یکی دیگه ذخیره تو یک فایله دوم استفاده از درایوهای مجازیه مثلا شما درایو m رو برای اینکار در نظر میگیرید و بعد روی کلاینها یک map drive میسازید
راههای پیشرفته تری هم مثل ذخیره در رجیستری و غیره و ذالک
موفق باشید

Payam Moradi
یک شنبه 03 آبان 1383, 16:23 عصر
خانم بختیاری سخنان آقای hmm هم درسته. ولی خب بازم میگم اگه میخوای سریع کارتان راه بیافته و مجبور نشید تمام رشته ها رو تغییر دهید، لینک فایل Exe رو تو کلاینت بگذارید تا کار راه بیافته. بعد جناب hmm سر فرصت برای شما توضیح میدن چه کار کنید و برنامه هاتون رو اصلاح کنید تا از روی خود کلاینتها اجرا بشن. 8)


مجید جان دلبندم اون دانلوده نه اجرا از رو وب
دوباره هم یک چیزی رو پروندی (این دفعه سومته ها...)
بهتره به جای دیدن برنامه کودکان یک کمی در مورد نحوه اجرا و پردازش اطلاعات و برنامه ها و همچنین حافظه ها و چگونگه اجرای برنامه ها در حافظه و اینکه اصلا حافظه سیستم ها به چه درد میخوره، مطالعه نمایید. :wink:

من که نگفته بودم که حرف شما غلطه گفتم این کار رو هم میشه کرد بدون اینکه مشکلی پیش بیاد برای برنامه های کم حجم. :mrgreen:
بابا قبولت دارم. ولی چرا این طوری جواب میدی. :?
ببخشید اصطلاح تخصصیش میشه دانلود دستت درد نکنه که گفتی. :تشویق: ولی حرفم رو در این مورد عوض نمیکنم. 8)
حالا شاید سو تفاهم شده. منظور همو نمیفمیم. اینو بی خیال تا اطلاع ثانوی.
منم یک سوال دارم از شما اگه عصبانی نیستید. جناب hmm. قابل میدونید یا نه ؟ اول بگید که جواب خواهید داد که بعد خنکم نکنید. :wink:
در مورد همین کار خانم بختیاری است. خیلی مهمه. شاید ایشون هم بعدا به مشکل من برسن. شاید هم حرفه ای تر از باشن. حتما شما (hmm) پاسخ این رو میدونید. شاید هم فقط من مشکل دارم. :متفکر:

جمیعا بدل نگیرید. داریم بحث دوستانه میکنیم. :wink:

hmm
دوشنبه 04 آبان 1383, 07:07 صبح
خانم بختیاری سخنان آقای hmm هم درسته. ولی خب بازم میگم اگه میخوای سریع کارتان راه بیافته و مجبور نشید تمام رشته ها رو تغییر دهید،
با روشهایی که گفته شد لازم نیست هیچ رشته ای تغییر کنه

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

من که نگفته بودم که حرف شما غلطه گفتم این کار رو هم میشه کرد بدون اینکه مشکلی پیش بیاد برای برنامه های کم حجم.
بازم حرفت اشتباهه

ببخشید اصطلاح تخصصیش میشه دانلود دستت درد نکنه که گفتی. ولی حرفم رو در این مورد عوض نمیکنم.
اگه حرفت عوض نمیشه پس یه لطفی بکن یک exe بساز آپ لود کن رو اینترنت بعد خودت بدون این که دانلود کنی اجراش کن (حتما جایزه نوبل رو میگیری :mrgreen: )

منم یک سوال دارم از شما اگه عصبانی نیستید. جناب hmm. قابل میدونید یا نه ؟ اول بگید که جواب خواهید داد که بعد خنکم نکنید.
من هم جواب ندم(البته اگه بلد باشم حتما جواب میدم) اساتیدی هستند که جواب بدن شما بپرس

Payam Moradi
دوشنبه 04 آبان 1383, 07:32 صبح
خب پس شما منظور منو متوجه نشدید. اگه قرار بشاه جایزه نوبل بدن باید به شما بدن. :mrgreen:
من هم نفهمیدم شما چی میگید.

بی خیال این تاپیک تا اطلاع ثانوی. اگه ممکنه سوالی که در تاپیک بعدی پرسیدم پاسخ بدید. چ.ن میدونم ظاهرا شما با شبکه بیشتر کار کردید. 8)

vbprogramer
دوشنبه 04 آبان 1383, 07:45 صبح
در جواب خانم بختیاری بگم که می تونید از Wise Installer برای مسیر دهی بانک برنامتون استفاده کنین
Wise یک امکانی داره که میتونید هنگام نصب مسیر بانک رو حتی از روی سرور و یا کامپیوتر دیگه ای بدین
(امتحان کردم ) البته درسته اگه سورس برنامتون مشکلی نداشته باشه :wink:

سمیه بختیاری
دوشنبه 04 آبان 1383, 12:45 عصر
تورو خدا من دقیقا چه کار باید بکنم :confy2:

ببینید می خوام بدونم چه جوری می شه کانکشن را از ورودی پر کنم ،البته خودم فکر می کنم که با یه متغیر می تونم رشته ادرس را در بین رشته کانکشن اضافه کنم اما نمی دونم این کار چقدر درسته یا شما راه بهتری می دونید می شه مثال بزنیدdb.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=soma;Initial Catalog=gaz"

فکر می کنید که بجای تغییر کانکشن یه سورس نیم با soma درست کنم بعد مسیر را از روی network بدم بهتر نیست :متفکر: :mrgreen:

باز هم از راهنمایی همه متشکرم :flower: :flower:

hmm
دوشنبه 04 آبان 1383, 13:48 عصر
تورو خدا من دقیقا چه کار باید بکنم

ببینید می خوام بدونم چه جوری می شه کانکشن را از ورودی پر کنم ،البته خودم فکر می کنم که با یه متغیر می تونم رشته ادرس را در بین رشته کانکشن اضافه کنم اما نمی دونم این کار چقدر درسته یا شما راه بهتری می دونید می شه مثال بزنیدdb.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=soma;Initial Catalog=gaz"

فکر می کنید که بجای تغییر کانکشن یه سورس نیم با soma درست کنم بعد مسیر را از روی network بدم بهتر نیست

باز هم از راهنمایی همه متشکرم
خانم بختیاری تا حالا همه فکر میکردیم بانک شما اکسسه :mad:
اگه بانک شما اس کیو ال هست که دیگه مشکلی ندارین فقط در کانکشن استرینگ اسم اون سرور رو بدین بعد برنامه رو exe کنید و رو کلاینتها نصب کنید البته برای تعیین هویت کاربر بحث پیچیده دیگه ای مطرح میشه که شما باید بلد باشید در غیر اینصورت تو همین بخش هم فکر کنم در موردش بحث شده

فکر می کنید که بجای تغییر کانکشن یه سورس نیم با soma درست کنم بعد مسیر را از روی network بدم بهتر نیست
در بانکهای اس کیو ال سرور دیگه احتیاجی به آدرس فیزیکی ندارید

Payam Moradi
دوشنبه 04 آبان 1383, 17:45 عصر
خب عصبانی نشید شما.(جناب hmm) (احتراما عرض کردم). :)
دستشون درد نکنه که همون اول نگفتند که بانک شون SQL است. به خاطر همین من و شما(جناب hmm) یکم بیشتر باهم آشنا شدیم. :wink:

bahar60
سه شنبه 05 آبان 1383, 08:05 صبح
چرا فکر کردین بانک من sql است ،مگه استفاده از odbc اون هم با این کانکشن امکان پذیر نیست
چون دقیقا من با همین کانکشن با بانک اطلاعات اکسس هم کار می کنم :گیج:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=soma1


مگه با اکسس نمی شه با odbc ادرس بانک را از روی شبکه داد مگه چی میشه :roll:
ـــــــــــــــــــــــــ ــــــــــــ
اگه قراره اتفاقی بیا فته بگین بدونم :? :flower: :flower: :flower:

bahar60
سه شنبه 05 آبان 1383, 08:16 صبح
مثل اینکه همه همین مشکل و دارن
فکر نمی کردم طرح این سوال این قدر مفید باشه اولش فکر می کردم سوالم خیلی مسخره است
:P :mrgreen:
من بانکم اکسس است ولی با sql پیوند داده شده
ولی برای اکسس هم امکان دادن مسیر از روی شبکه هست من امتحان کردم ولی واقعا نمی دونم که این کار درسته با نه( خب تجربه شما بیشتره) :sunglass:

ـــــــــــــــــــــــــ ـــــــــــــــــــــــ
از راهنمایی شما ممنون :flower: :flower:

سمیه بختیاری
سه شنبه 05 آبان 1383, 14:23 عصر
سلام
خانم/آقای bahar60 من هم با نظر شما موافقم
آقای hmm و آقای پیام مرادی می شه شما هم یه راهنمایی بفرمایید که این کار واقعا درسته یا نه چون باید در همین هفته پروژه را تحویل دهم :confy2: :?

Payam Moradi
سه شنبه 05 آبان 1383, 19:04 عصر
سلام

این کار واقعا درسته یا نه

اگر منظورتون اینه که برای (درایور)اکسس مسیر بانک روی شبکه رو بدید، آره درسته. فرقی نمیکنه. 8)
مثل:
فرض کنید فایل اکسس به نام mymdb.mdb در کامپیوتری به نام copmputername و پوشه ای که شار شده به نام folder قرار داره :


"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Computername\folder\mymdb.mdb;Mode=ReadWr ite;Persist Security Info=False;"
یا به جای Computername معادل IP رو قرار بدید.
مثل:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\225.255.255.1\folder\mymdb.mdb;Mode=ReadW rite;Persist Security Info=False;"

یا اصلا \\Computername\folder\ رو به صورت یک Network Drive در My compuer هر سیستم قرار بدید مثلا به نام درایو Q و به این صورت عمل کنید:


"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Q:\mymdb.mdb;Mode=ReadWrite;Persist Security Info=False;"

امیدوارم منظورتون رو درست متوجه شده باشم. :roll:

انشاالله که پروژه تون رو با موفقیت تحویل میدید. :flower:

کم حوصله
سه شنبه 05 آبان 1383, 23:44 عصر
خوب اگر دوستان مباحث و جنگ و جدال هاشون اجازه میدهد عرض کنم که :
1 - شما بهتر از همون درایور اکسس استفاده کنید نه از درایور های دیگر
2 - برای مسیر یابی می توانید از دستور APP.PAth استفاده نمایید
3 - با بالا رفتن تعداد رکورد در اکسس از حد 50 هزار رکورد با کاهش سرعت مواجه خواهید شد( پس لطفا خالی بندی نفرمایید)
4 - زمانی که فایلی بصورت EXE بر روی سرور اجرا شود تمام عملیات آن بر روی سرور انجام خواهد شد نه بر روی کلاینت (بدین صورت که زمانی که شما شورت کات برنامه را از داخل کلاینت اجرا می کنید عملا دستور اجرای برنامه را به سرور می فرستید و از این به بعد دائما دستورات و دیتا شما در شبکه جاری خواهد شد و سرعت شبکه پایین خواهد آمد )
5 - به هیچ وجه از کانکشن باز در برنامه استفاده نکنید که سربار برای برنامه ایجاد می کند (شما یک فانکشن بنویسید که رکوردست را به آن پاس داده کانکشنی باز شده رکوردست مقدار گیرد و سپس کانکشن بسته شده و عملیات بر روی رکورد ست انجام گیرد )

کم حوصله
سه شنبه 05 آبان 1383, 23:48 عصر
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & " mymdb.mdb;Mode=ReadWrite;Persist Security Info=False;"

حتما جهت استفاده از این کد دیتابیس و فایل اجرایی برنامه را در یک مکان بریزید :) :flower:

hmm
چهارشنبه 06 آبان 1383, 07:25 صبح
آقای کم حوصله سلام
اگه یه کم حوصله بخرج میدادی و مطالب قبل رو بدقت میخوندی دوباره درگیر مسائل قدیمی نمیشدیم
خب مجبورم بدلیل اینکه دوستان به اشتباه نیافتند چند نکته رو دوباره یادآوری کنم

1 - شما بهتر از همون درایور اکسس استفاده کنید نه از درایور های دیگر
کاملا موافقم البته دیده شده بعضی از دوستان بجای رابط oledb از odbc استفاده میکنند که این رو یکبار دیگه هم توضیح دادم odbc نسل قبل از oledb است و فقط برای سازگاری با نسخه های قدیمی در ویندوز هست
و سرعت اونهم بمراتب کمتر از oledb است (باز هم عرض میکنم منظورم از سرعت کار با داده های زیاده)

2 - برای مسیر یابی می توانید از دستور APP.PAth استفاده نمایید
این آیتم زمانی استفاده میشه که برنامه اجرایی از روی شبکه(خواهشا به این کلمه دقت کنید از روی شبکه نه از روی سرور) اجرا بشه - که در مورد اشتباه بودن این روش مفصلا بحث کردیم


4 - زمانی که فایلی بصورت EXE بر روی سرور اجرا شود تمام عملیات آن بر روی سرور انجام خواهد شد نه بر روی کلاینت (بدین صورت که زمانی که شما شورت کات برنامه را از داخل کلاینت اجرا می کنید عملا دستور اجرای برنامه را به سرور می فرستید و از این به بعد دائما دستورات و دیتا شما در شبکه جاری خواهد شد و سرعت شبکه پایین خواهد آمد )

کاملا و صد در صد اشتباهه اصلا یک خط از برنامه در طرف سرویس دهنده (سرور) اجرا نمیشه دلیل واضح و روشنش هم اینه که شما احتیاجیندارید که برنامه رو رو سرور نصب کنید و ایضا لازمه که برنامه روی هر کلاینت نصب بشه اگه بازهم قبول ندارید میتوانید برنامه رو اجرا کنید task manager طرف سرور و طرف کلاینت رو ببینید و خودتون بگید که برنامه در حافظه کدوم دستگاهه (مطمئنا کلاینت)


5 - به هیچ وجه از کانکشن باز در برنامه استفاده نکنید که سربار برای برنامه ایجاد می کند (شما یک فانکشن بنویسید که رکوردست را به آن پاس داده کانکشنی باز شده رکوردست مقدار گیرد و سپس کانکشن بسته شده و عملیات بر روی رکورد ست انجام گیرد )

این مورد هم از بی اطلاعی شما (با عرض پوزش :oops: ) از چگونگی کار ado هست
connection تنها یک متغیر برای تعیین روش اتصال به بانک اطلاعاتی است یعنی فقط بستری جهت انتقال اطلاعات از بانک اطلاعاتی به کلاینت میباشد و درسته که این متغییر در سراسر برنامه بازه و حافظه (فقط در حد یک متغیر معمولی از نوع object) رو اشغال میکنه نه بیشتر چون قرار نیست اطلاعات رکورد ست و یا خدایی نکرده اطلاعات بانک اطلاعاتی درون این متغیر بی آزار قرار بگیره اما اگه بخواد هر بار که رکوردستی احتیاج به بانک اطلاعاتی داره دوباره یک متغیر ساخته بشه و به بانک کانکت بشه ، اون موقع سرعت اجرای برنامه بشدت کاهش پیدا میکنه چون کلاینت میخواد یه نمونه از provider رو جهت اتصال به بانک فعال کنه ، provider دنبال بانک بگرده ، منتظر پاسخ دهی موتور دیتابیس بشه و .....
و تازه همونطور که میدونید با افزایش تعداد کانکشن ها دیگه دیتابیس نمیتونه به همه به موقع سرویس بده و بعضی مواقع از کانکت شدن نمونه ای دیگر جلوگیری میکنه خب معنی این عمل اینه که یکدفعه شما در وسط برنامه با مشکل connection time out موجه میشد و برنامه از کار میافته
البته اون چیزی که دوستمون کم حوصله گفتند در نسخه ado.net (کسانی که با vs.net استفاده کردندمیدونند ) اصلاح (بهینه ) شده و خود connection هر موقع که لازم به برقراری ارتباط نباشه ، ارتباطش رو با دیتابیس قطع میکنه ولی باز هم به این معنی نیست که provider و تنظیماتش رو از حافظه برداره فقط درخواستهای خودش رو از سرور (بانک اطلاعاتی) برمی داره تا اون بهتر به بقیه پاسخ بده

موفق باشید :flower:

bahar60
چهارشنبه 06 آبان 1383, 08:10 صبح
سلام
ببخشید می شه نحوه تعرف کانکشن سراسری را با یک مثال توضیح بدید :oops:



مرسی :flower: :flower:

hmm
چهارشنبه 06 آبان 1383, 13:29 عصر
تو صفحات قبل توضیح داده شد