صفحه 2 از 3 اولاول 123 آخرآخر
نمایش نتایج 41 تا 80 از 88

نام تاپیک: برنامه نویسی شبکه

  1. #41

    نقل قول: برنامه نویسی شبکه

    اما توضيح البته ممكنه راه مناسبي نباشه اما به هر حال خودش يك روشه
    سطر اول كه مشخصه از مولتي لوك استفاده ميكنيم تا بتونيم ركوردهاي متعددي را قفل كنيم
    اگه فرض كنيم ما فايلي داريم كه شامل شماره حسابها و نام اشخاص باشه و فايلهاي متعدد ديگه كه شامل فايل سند و يا دفاتر معين و تفضيل و كل و ..
    ابتدا بايدبراي ثبت سند هر حسابي اون ركورد را در اختيار بگيريم نه فايل را چون تغييري نميخواهيم در اين فايل
    انجام بديم فرض كنيم عمليات بانكي باشه بر اساس مانده فعلي عمليات برداشت انجام ميشه
    پس ركورد شماره حساب خاص را بررسي و در صورتي كه قفل نيست قفل و در صورت قفل بودن به كاربر پيام ميديم و زمان بررسي قفل را هم به يك يا دوثانيه كاهش ميديم
    اما اگه ركورد قفل نبود و توسط ما قفل شد پس از هر مدت زمان لازم كه اطلاعات سند را كامل كرديم و دستور ثبت را صادر كرديم چون در اين حالت با توجه به نوع دستورات براي اضافه كردن اطلاعات و يا تغييرات در فايلهاي ديگر ممكنه فايل هاي ديگر كاملا قفل بشه دستور بررسي قفلهاي فايل را روي اتوماتيك مي گذاريم
    و در نهايت همين فايل اولي را unlock ميكنيم
    اگه اشتباه نكنم زمان اتوماتيك بررسي قفل فايل حدود 100 ثانيه است كه اين هم زمان زيادي براي ثبت در فايلها و ما كمتر از يك ثانيه نياز داريم
    بعد كاربر بعدي وقتي به اون حساب دسترسي داره كه مانده تغيير كرده
    اميدوارم منظورم را رسونده باشم اگه مفهوم نيست بگيد تا توضيح بدم

  2. #42

    نقل قول: برنامه نویسی شبکه

    البته راه حل بهتري هم هست كه از دستور BEGIN TRANSACTION استفاده كني
    و البته از نوع تو در تو كه بصورت منطقي شرايط فايلها و قفل اونها را بررسي و در كمترين زمان بصورت فيزيكي بروز اوري ميشه
    دستورات sql معمولا بصورت اتوماتيك ركورد يا فايل را قفل ميكنند كه در help توضيحاتش هست

  3. #43
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    سلام دوستان
    اکثر اوقات اطلاعات داخل حافظه کلاینت (مثلا در ناحیه 2 یک dbf یوز شده) حتی من دستور set refresh to 1,1 هم گذاشتم به لحظه نیست و اگر کسی روی یک کلاینت سندی بزنه گاها اتفاق میوفته که کلاینت های دیگه اونو نمیبینن یا بدتر از اون با همون شماره (چون نمیبیننش) سند ثبت میکنن و سندها قاطی یا سند اولیه حذف میشه !
    این مشکل وقتی از دستور select Max(field_name) from '\\server\sds\sanad.dbf برای پیدا کردن بزرگترین شماره سند استفاده میکنی کمتر بروز میکنه چون میره از روی خود سرور میخونه البته سرعت کار پائینه ولی دیروز من به جای این دستور ، چون رو فیلد شماره سند cdx داشتم ، از دو دستورselect 2, سپس go botom واسه پیدا کردن بزرگترین شماره سند و اضافه کردن عدد 1 برای ایجاد شماره سند جدید استفاده کردم به جای دستور select max(field_name اغلب سیستمها به مشکل خوردن و شماره های پرت و پلا و چند شماره قبل از آخرین شماره رو به عنوان بزرگترین شماره بعد از دستور go bottom بر گردونده!!! جالبش اینجاست که در بعضی قسمتها فقط یک سیستم داشته سند میزده!!!!!!
    خلاصه حسابی آبروم رفته نمیدونم علت چیه.
    ضمنا هنگام ثبت اطلاعات ابتدا flock میکنم با Insert اطلاعات رو ثبت و بعدش هم flush force کردهunlock میکنم.
    لطفا هرکس میتونه کمک کنه.
    ممنون

  4. #44

    نقل قول: برنامه نویسی شبکه

    برای کار در شبکه سعی کنید از قدرت و سهولت فاکس و برتری sql server کمک بگیرید
    یعنی برنامه نویسی با فاکس و بانک اطلاعاتیش sql server
    این موضوع باعث میشه قدرت این دو را با هم جمع کنید و راحت تر به هدفتون برسید
    در تندیس های تخت جمشید هیچ کس در حال تعظیم نیست ، هیچ کس عصبانی نیست ، هیچ کس سرافکنده و شکست خورده نیست ، هیچ کس سوار بر اسب نیست ، هیچ قومی بر قوم دیگر برتر نیست ، هیچ کس برده نیست و هیچ تصویر خشنی دیده نمیشود.
    ************************************************** ******************************************
    اندیشه کن , آنگاه سخن گو تا از لغزش بر کنار باشی

  5. #45
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    Sql serverیا mysql? کدوم ورزنش؟

  6. #46
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    یعنی از طریق vfp odbc driver از بانکهای sql تو فاکس view بسازمو باهاش کار کنم دیگه؟

  7. #47

    نقل قول: برنامه نویسی شبکه

    sql server منابع زیادی در اینترنت داره که میتونید از طریق oledb یا odbc باهاش ارتباط برقرار کنید.وقتی یک رکورد ست از اطلاعاتتون ساختید و خواستید دوباره کانکشن رو فعال کنید و اطلاعاتتون رو با تغییراتی که توش دادید دوباره در دیتابیس ذخیره کنید اگر کاربر دیگه ای هم همون موقع بخواد تغییراتی بده میشه کانفلیکت بوجود آمده رو مدیریت کرد
    در مورد mysql هم باید بگم که خوش دسته ولی منابع کمی داره.یه کتاب برای کار با فاکس و mysql هست که من تا الان نتونستم نسخه ای از اونو توی نت برای دانلود پیدا کنم.خریدشم که با شرایطی که ما داریم ............
    در تندیس های تخت جمشید هیچ کس در حال تعظیم نیست ، هیچ کس عصبانی نیست ، هیچ کس سرافکنده و شکست خورده نیست ، هیچ کس سوار بر اسب نیست ، هیچ قومی بر قوم دیگر برتر نیست ، هیچ کس برده نیست و هیچ تصویر خشنی دیده نمیشود.
    ************************************************** ******************************************
    اندیشه کن , آنگاه سخن گو تا از لغزش بر کنار باشی

  8. #48
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    من sql server 2000 رو نصب کردم و برای آزمایش یکی از dbf هامو توی دیتابیسش import کردم ، بعد دیتابیس sql-server رو به odbc اضافه کردم.
    بعد داخل پروژه ویژوال فاکس یک دیتابیس ایجاد کردم و یک کانکشن به دیتابیس sql درون odbc زدم و از اون بانک مورد نظر(همون بانک dbf که داخل sql server بردم و import کرده بودم) یک remote view گرفتم.
    حالا این view رو در یک ناحیه کاری use میکنم و عین یک بانک عادی باهاش کار میکنم . هر وقت چیزی رو بهش اضافه یا ویرایش میکنم بعدش دستور tableupdate() رو میزنم تو بانک sql server هم اون تغییرات لحاظ میشه.
    ولی اگه یه چیزی رو تو بانک sql تغیییر بدم (مثلا کاربر دیگری این تغییر رو داده) ، تا زمانی که view رو در ناحیه کاریش نبندم و دوباره use نکنم view تغییرات انجام شده روی sql-server در view ما update نمیشه !؟
    اگرم از دستور refresh() استفاده کنم پیغام میده که key field ، بانک uniqe نیست !
    برای حل این مشکل باید چکارکرد که وقتی کاربر دیگه ای بانک sql server رو تغییر میده روی viewما update بشه؟

  9. #49

    نقل قول: برنامه نویسی شبکه

    این به خاطر اینه که شما ارتباط یک طرفه با sql برقرار کردی و تغییرات از سمت شما در sql اعمال میشه ولی از اون طرف این اتفاق نمی افته
    من منظورم اینه که شما باید بطور کلی از دستورات ado استفاده کنید تا این مشکل هارو نداشته باشید
    در تندیس های تخت جمشید هیچ کس در حال تعظیم نیست ، هیچ کس عصبانی نیست ، هیچ کس سرافکنده و شکست خورده نیست ، هیچ کس سوار بر اسب نیست ، هیچ قومی بر قوم دیگر برتر نیست ، هیچ کس برده نیست و هیچ تصویر خشنی دیده نمیشود.
    ************************************************** ******************************************
    اندیشه کن , آنگاه سخن گو تا از لغزش بر کنار باشی

  10. #50
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    چطوری؟ ado رو از کجا نصب کنم و دستوراتش خاصه؟ کلا روش کار چیه؟

  11. #51

    نقل قول: برنامه نویسی شبکه

    امیدوارم با مطالعه فایلها و مثالهای این ضمیمه مشکلتون حل بشه.متاسفانه چون حجمش یکم زیاد بود مجبور شدم بزارمش توی سایت rapidshare
    http://rapidshare.com/files/31185027...mssql.rar.html
    در تندیس های تخت جمشید هیچ کس در حال تعظیم نیست ، هیچ کس عصبانی نیست ، هیچ کس سرافکنده و شکست خورده نیست ، هیچ کس سوار بر اسب نیست ، هیچ قومی بر قوم دیگر برتر نیست ، هیچ کس برده نیست و هیچ تصویر خشنی دیده نمیشود.
    ************************************************** ******************************************
    اندیشه کن , آنگاه سخن گو تا از لغزش بر کنار باشی

  12. #52
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: برنامه نویسی شبکه

    سلام
    اين همون Client-Server Applications with Visual FoxPro 6.0 and SQL Server هست يا يک چيز جديده؟
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  13. #53

    نقل قول: برنامه نویسی شبکه

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

  14. #54
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    چرا بعضی اوقات روی شبکه کاربرا وقتی یکی اطلاعات ذخیره میکنه و روی DBF که روی سرور شیر شده هم ذخیره میشه ، بقیه کامپیوترها نمیتونند اون رکوردها رو ببینند؟ یهنی اگه مثلا با دستور Select sql که میزنی نمیارتش ، گاها هم دیدم که اصلا با اجرای این دستور select که به آدرس اون فایل روی سرور اشاره داره هیچ send,recive دیده نمیشه ولی error هم نمیده؟!!

    این مشکل فاکسه؟ شبکه س؟ یا ویندوز؟ یا بافر؟؟

    ضمنا اگه ویندوز کلاینت ریستارت شه اونوقت رکوردهای جدید رو میبینه.

    ***user 1

    select 1
    if flock()

    delete from '\\server\sds\snd.dbf' where s_no=6;

    insert into '\\server\sds\snd.dbf' (s_no,...) value (6,...)

    flush force in 1
    unlock in 1
    endif

    ****
    i check the snd.dbf on server and the record(s) is saved on it on server BUT....

    *** another users ***

    select * from '\\server\sds\snd.dbf' where s_no=6

    result:
    it's empty!!

    or

    select max(s_no) from '\\server\sds\snd.dbf' into cursor snd_no;


    result:
    max_s_no=5!!!!

    ****
    and during the execution of select command there is no activity on network indicator!!!
    آخرین ویرایش به وسیله arashkhaan2002 : شنبه 14 آذر 1388 در 15:39 عصر

  15. #55
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    انگاری دوستان کسی با فاکس دیگه برنامه شبکه نمینویسه که به مشکل بخوره!

  16. #56

    نقل قول: برنامه نویسی شبکه

    جناب آرش
    قبلا هم عرض کردم که برای کار در شبکه سعی کنید از بانک اطلاعاتی sql server استفاده کنید
    فاکس بیشتر به درد محیط کاری تک کاربره میخوره و امروزه مدیریت فرآیندهای پیچیده در بانکهای اطلاعاتی مستلزم استفاده از پایگاه های داده قوی مانند sql اوراکل mysql میباشد
    هرچند فاکس هنوز هم قویه ولی واقعا با پیچیدگیهای شبکه ای بهتره استفاده از فایلهای dbf رو کنار بزارید.همونطور که میدانید دلفی بصورت پیش فرض از پارادوکس استفاده میکنه ولی تقریبا تمام برنامه نویسهای دلفی برای مدیریت بانکهای اطلاعاتی از sql و ... استفاده میکنن.البته dbf کجا و پارادوکس کجا.
    حتی بهتون پیشنهاد میکنم در صورت ادامه استفاده از جداول dbf بر روی یک کامپیوتر و share کردن آن برای سایرین ، بدلیل مشکلات حافظه و کندی و ... حتما از بافرینگ بر روی سطر(توجه کنید که سطر و نه کل جدول)
    استفاده کنید
    باور بفرمائید سهولت برنامه نویسی با فاکس رو اگر با قدرت بانکهای اطلاعاتی قوی مثل sql آمیخته کنید برنامه شما صاحب توانائی های خوبی میشود
    من توی vb.net , C#‎ یکی از کارهای کوچیکی رو که مثل آب خوردن توی فاکس انجام میدادم نمیتونم انجام بدم از بس که سخت و طاقت فرساست
    باور کنید برای استفاده از کومبو و گرید و برخی از این ابزارهای پر مصرف آدم باید توی سی شارپ و وی بی دات نت و .... هزار تا پشت وارو بزنه تا به نتیجه برسه در صورتی که در فاکس همه اینها با کمترین کوششی قابل دست یافتنه
    یا علی مدد
    عید بر همگی مبارک
    در تندیس های تخت جمشید هیچ کس در حال تعظیم نیست ، هیچ کس عصبانی نیست ، هیچ کس سرافکنده و شکست خورده نیست ، هیچ کس سوار بر اسب نیست ، هیچ قومی بر قوم دیگر برتر نیست ، هیچ کس برده نیست و هیچ تصویر خشنی دیده نمیشود.
    ************************************************** ******************************************
    اندیشه کن , آنگاه سخن گو تا از لغزش بر کنار باشی

  17. #57

    نقل قول: برنامه نویسی شبکه

    سلام
    من فكر ميكنم فرايند استفاده شما اشتباهه. من در پروژه هاي تحت شبكه هيچ گاه به اين مشكلاتي كه شما مي فرمائيد بر نخوردم و فكر ميكنم علتش تمامي شيوه كدنويسي ست .
    مثلا من در يك فايل متني مسير ديتابيس اصلي رو گذاشتم حال اون ديتابيس ميتونه ازش استفاده تك كاربره بشه يا شبكه . اگر قرار باشه تحت شبكه كار كنن كاربر مياد مسير ديتابيس رو تنظيم ميكنه .
    بعد از DataEnvironment براي كار با جداولم استفاده ميكنم .
    در ضمن من فقط ديتابيس رو شر ميكنم نه كل پوشه برنامه رو.

  18. #58
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    مرسی آقای کیا ، شما درست میفرمائید ، این کار واسه پروژه های آتیم عملی هست منتها در حال حاضر من دنبال حل مشکل کاربران فعلیم هستم.
    رهرو جان من تو برنامه ام بانکهام همه free table هستش ، و فقط مسیرشون روی سرور آدرس میدم همونطور که تو کدهای بالائی میبینی ، میشه لطفا در مورد روش مورد استفادت بیشتر توضیح بدی .
    من فایلهام بینشون ریلیشنی وجود نداره و در صورت نیاز از دستورات sql واسه پیوندشون استفاده میکنم.
    راجع به گذاشتن فایلهات تو دیتابیس و آدرس دهی روی سرور و نحوه اتصال data enviroument به database یا free table روی سرور میشه بیشتر توضیح بدی ، البته تا حدوی میدونم ولی میخوام ببینم دقیقا چیکار کردی.
    مثلا فرض کنیم یک دیتابیس ایجاد کردیم و میخوایم توش add table کنیم ، معلوم نیست بعدا مسیر table ها روی سرور کجا باشه که الان بخواهیم add کنیم؟؟!! واسه data enviroument هم همین مسئله هست.
    واسه همین من اول برنامه مسیر فایل های روی سرور رو تو یه متغییر میریزم و اول آدرس table هام میگذارم و باهاشون با دستورات sql کار میکنم.

  19. #59

    نقل قول: برنامه نویسی شبکه

    دوست من ،‌ من به نوبه خودم ميتونم بگويم اين ساده ترين نوع در شبكه است . و اصلا از اين درسرهايي كه شما ميگيد درش دخيل نيست . شما زحمت خودتون را اضافه كردي. مثلا چرا از ريليشنها نبايد استفاده كرد در حالي خيلي مفيد ميشه ازش سود جست.
    موقعي كه شما ديتابيس رو شر ميكني اصلا نيازي نيست بدوني مسير جداولت كجا قرار دارند و دقيقا روش رفتار با اونها مثل رفتار با يك سيستم تك كاربره ست . شما فقط و فقط آدرس ديتابيس رو ميخاي كه اونهم داري .
    يك تست كوچكلو بزن ، خودت متوجه ميشي .
    البته هنوز از اساتيد من نقدي بر اين روش نديدم .

  20. #60
    کاربر دائمی آواتار mehran_337
    تاریخ عضویت
    مهر 1384
    محل زندگی
    رشت
    پست
    1,305

    نقل قول: برنامه نویسی شبکه

    1 - شاید اولین نقد این باشه که همه کاربران به دیتابیس شما دسترسی دارند حتی می تونن حذفش کنن .
    البته شما مجبورید در شبکه ای که دامین نداره از همین روش استفاده کنید .

    2 - استفاده از دیتابیس شیرین ترین بخش قدرت نمایی فاکسه چرا free table اون هم تحت شبکه ؟؟؟؟ با این کار قدرت فاکس و محدود کردین
    3 - منم تفاوت خاصی بین ایجاد رلیشن در ابتدای دیتابیس احساس نکردم ارتباط ها را با select ایجاد می می کنم اینطوری وقتی در ساختار جد اول تغییراتی ایجاد می شه دردسر سر و کله زدن با رلیشن ها کمتر می شه
    4 - بجای flock از قفل رکورد استفاده کنید و حتما رکورد جاری رو بافرینگ کنید

  21. #61
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    ممنون دوستان عزیز
    من هم برای قدرت نمائی بیشتر فاکس! فعلا فری تیبل هامو بردم تو یه دیتابیس و تو برنامه ام به جای آدرس دهی تک تک فری تیبل ها فقط آدرس دیتا بیس رو دادم و سپس بصورت معمولی با آوردن اسم دیتابیس و سپس نام فری تیبل اونها رو تو نواحی مختلف کاری یوز کردم . حالا ببینم بازم به مشکلات تداخلی میخورم یا نه

    در مورد flock() من مجبورم هنگام ثبت واسه شماره دهی اینکاروبکنم تا تداخل شماره ایجاد نشه.
    آخرین ویرایش به وسیله arashkhaan2002 : یک شنبه 22 آذر 1388 در 18:28 عصر

  22. #62
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    دوستان عزیز و آقا مهران گل و جناب کیا;
    در رابطه با ایجاد بانکها در sql server 2000 من به راحتی تونستم از طریق odbc و با remote view زدن به بانک sql و کار کردن با remote view به عنوان بانک اطلاعاتی فاکس و پس از هر تغییر tableupdate() زدن برای به روز شدن بانک اصلی در sql , برای به روز کردن remote view با استفاده از دستور requery() کار رو تا اینجا به راحتی انجام بدم.
    فقط مجبور شدم همه فیلدها رو با هم به عنوان key field تعریف کنم.چون احتمال تکراری بودن همه رکورد یک سند میرفت.

  23. #63
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    هیچکی مارو وشبکه فاکسو تحویل نمیگیره انگاری .
    خوبه چه فروم فعالی داریم ، بهتره دوستان عزیز یه سری به www.foxite.com بزنن ببینن چقدر فعاله.
    مهران جان از توصیه ات ممنونم ، free table هامو گذاشتم تو یه دیتابیس و اول برنامه به جای آدرس دهی تک تک تیبل ها ، open database میکنم و راحت با table ها کار میکنم فعلا تو شبکه تحت تسته ، امیدوارم دیگه تداخل ، کانفلیکت ، کالیژن و آپدیت نبودن واسم پیش نیاد.
    فکر میکنی غیر از امنیت ، تو سرعت کارمم هم اینجوری تاثیر مثبت بذاره؟

  24. #64
    کاربر دائمی آواتار mehran_337
    تاریخ عضویت
    مهر 1384
    محل زندگی
    رشت
    پست
    1,305

    نقل قول: برنامه نویسی شبکه

    مسلما تاثیر می زاره . حالا اگه کاربرات زیاد باهوش نیستند (البته من در هیچ برنامه ای کاربرارو دست کم نمی گیرم) می تونی کارهای امنیتی هم تا حدی پیش ببری.
    مثلا توی محثی دیتابیس قرار بگیر و راست کلیک و پروپرتیز بزن می بینی که دیتابیس هم واسه خودش متدهایی داره مثلا وقتی باز می شه یا وقتی تیبلی مشاهد می شه حذف می شه و ...
    می تونی پروسیجری بنویسی مثلا در active دیتابیس بنویس

    if a <> 123
    return .f.
    endif


    حالا توی برنامه ات یه متغیر عمومی a با مقدار 123 تعریف کن بعد دیتابیس و باز کن. اگه کاربر یه کم بلد باشه از use استفاده کنه تا این رمز و ندونه نمی تونه بازش کنه
    ولی برای کار با برنامه های تحت شبکه بزرگ که فکر کنم برنامه ات جزو اونها باشه بهتره اسکیوال رو ادامه بدی مسلما در ابتدای راه این مشکلات و خواهی داشت.
    موفق باشید

  25. #65
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: برنامه نویسی شبکه

    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  26. #66
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    دوستان عزیز و آقا مهران گل سلام

    از وقتی free table هامو بردم داخل یک دیتابیس و ازشون استفاده میکنم ، امنیت بالاتر رفته و دیگه به اون مشکلات قبلی بر نخوردم ولی چون از دیتا بافرینگ استفاده نمیکنم بدلیل ترس از بروز نبودن حتی لحظه ای اطلاعات ، سیستم روی شبکه سرعتش کمتر شده . این مسئله به وضوح هنگام browse کردن مشهوده و کاربرا رو شاکی کرده ، موقعی که از free table استفاده میکردم سرعت به مراتب بالاتر بود .
    اگه توصیه ای دارین بفرمائین . ضمنا اول برنامه set refresh to 1,0.001 گذاشتم.

  27. #67

    نقل قول: برنامه نویسی شبکه

    نقل قول نوشته شده توسط arashkhaan2002 مشاهده تاپیک
    دوستان عزیز و آقا مهران گل سلام

    از وقتی free table هامو بردم داخل یک دیتابیس و ازشون استفاده میکنم ، امنیت بالاتر رفته و دیگه به اون مشکلات قبلی بر نخوردم ولی چون از دیتا بافرینگ استفاده نمیکنم بدلیل ترس از بروز نبودن حتی لحظه ای اطلاعات ، سیستم روی شبکه سرعتش کمتر شده . این مسئله به وضوح هنگام browse کردن مشهوده و کاربرا رو شاکی کرده ، موقعی که از free table استفاده میکردم سرعت به مراتب بالاتر بود .
    اگه توصیه ای دارین بفرمائین . ضمنا اول برنامه set refresh to 1,0.001 گذاشتم.
    سلام
    عذر ميخوام منظورتون از browse كردن چيه ؟!
    اگر نمايش در گريد هستش ، مگر شما از sql استفاده نميكنين ؟. منظورم اس كيو ال خود فاكسه ؟

  28. #68
    کاربر دائمی آواتار mehran_337
    تاریخ عضویت
    مهر 1384
    محل زندگی
    رشت
    پست
    1,305

    نقل قول: برنامه نویسی شبکه

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

  29. #69
    کاربر دائمی آواتار arashkhaan2002
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    اصفهان و تهران
    پست
    193

    نقل قول: برنامه نویسی شبکه

    Browse را وقتی که کاربر میخواد جستجو کنه روی کدها میگذارم .

    set refresh ru gozashtam rye 0,5 سرعت بهتر شد.

  30. #70

    نقل قول: برنامه نویسی شبکه

    سلام دوستان
    اگه منبعی در رابطه با برنامه نویسی شبکه با #c و sql دارید معرفی کنید

  31. #71

    نقل قول: برنامه نویسی شبکه

    شما باید برای دریافت پاسخ به بخش C#‎ مراجعه کنید.در بخش open source ، من یه مثال خوب و جامع گذاشتم
    در تندیس های تخت جمشید هیچ کس در حال تعظیم نیست ، هیچ کس عصبانی نیست ، هیچ کس سرافکنده و شکست خورده نیست ، هیچ کس سوار بر اسب نیست ، هیچ قومی بر قوم دیگر برتر نیست ، هیچ کس برده نیست و هیچ تصویر خشنی دیده نمیشود.
    ************************************************** ******************************************
    اندیشه کن , آنگاه سخن گو تا از لغزش بر کنار باشی

  32. #72

    نقل قول: برنامه نویسی شبکه

    اين واقعا يك سوال جديده ؟!! آخه تاريخ ارسالش مربوط به شنبه 02 اسفند 1382, 01:01 صبح است ولي آخرين پست اين تاپيكه ؟!!

  33. #73

    نقل قول: برنامه نویسی شبکه

    نقل قول نوشته شده توسط mehran_337 مشاهده تاپیک
    مسلما تاثیر می زاره . حالا اگه کاربرات زیاد باهوش نیستند (البته من در هیچ برنامه ای کاربرارو دست کم نمی گیرم) می تونی کارهای امنیتی هم تا حدی پیش ببری.
    مثلا توی محثی دیتابیس قرار بگیر و راست کلیک و پروپرتیز بزن می بینی که دیتابیس هم واسه خودش متدهایی داره مثلا وقتی باز می شه یا وقتی تیبلی مشاهد می شه حذف می شه و ...
    می تونی پروسیجری بنویسی مثلا در active دیتابیس بنویس

    if a <> 123
    return .f.
    endif


    حالا توی برنامه ات یه متغیر عمومی a با مقدار 123 تعریف کن بعد دیتابیس و باز کن. اگه کاربر یه کم بلد باشه از use استفاده کنه تا این رمز و ندونه نمی تونه بازش کنه
    ولی برای کار با برنامه های تحت شبکه بزرگ که فکر کنم برنامه ات جزو اونها باشه بهتره اسکیوال رو ادامه بدی مسلما در ابتدای راه این مشکلات و خواهی داشت.
    موفق باشید
    با سلام .

    مهران جان به فرمایش شما در active دیتابیسم ، پروسیجر شما را نوشتم ولی بدون وجود متغیر A هم بانک اطلاعاتی من باز شد و هم جدولم با دستور Use فعال شد .
    حالا اگر بخواهم روی بانک اطلاعاتی و یا جدولم پسوورد بگذارم باید چه کنم ؟

    با سپاس .

  34. #74
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: برنامه نویسی شبکه

    در وقايع زير کدتون رو اضافه کنيد :

    PROCEDURE dbc_OpenData(cDatabaseName, lExclusive, lNoupdate, lValidate)
    *Immediately after DBC is opened.
    ENDPROC

    PROCEDURE dbc_ModifyData(cDatabaseName, lNoWait, lNoEdit)
    *Immediately after MODIFY DATABASE is issued.
    ENDPROC

    PROCEDURE dbc_Activate(cDatabaseName)
    *When DBC is made current via SET DATABASE TO <dbname> or after OPEN DATABASE completes.
    ENDPROC


    PROCEDURE dbc_BeforeAddTable(cTableName, cLongTableName)
    *Just before a table is added to the DBC. Return .F. to prevent table from being added.
    ENDPROC

    PROCEDURE dbc_BeforeAppendProc(cFileName, nCodePage, lOverWrite)
    *Just before a DBC stored procedure is appended to.
    ENDPROC

    PROCEDURE dbc_BeforeCreateTable(cTableName, cLongTableName)
    *Just before a table is created. Return .F. to prevent table creation.
    ENDPROC

    PROCEDURE dbc_BeforeCreateView(cViewName)
    *Just before a view is created. Return .F. to prevent view creation.
    ENDPROC

    PROCEDURE dbc_BeforeModifyProc()
    *Just before a DBC stored procedure is modified.
    ENDPROC

    PROCEDURE dbc_BeforeModifyTable(cTableName)
    *Just before a table is modified. Return .F. to prevent modification.
    ENDPROC

    PROCEDURE dbc_BeforeDropTable(cTableName, lRecycle)
    *Just before a table is dropped from DBC. Return .F. to prevent table from being dropped.
    ENDPROC

    PROCEDURE dbc_BeforeModifyView(cViewName)
    *Just before a view is modified. Return .F. to prevent modification.
    ENDPROC

    PROCEDURE dbc_BeforeOpenTable(cTableName)
    *Just before a table or view is opened. Return .F. to prevent table or view being opened.
    ENDPROC

    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  35. #75

    نقل قول: برنامه نویسی شبکه

    با سلام .
    جناب بی نیاز عزیز ، مدیر محترم

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

    با تشکر
    فایل های ضمیمه فایل های ضمیمه

  36. #76
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: برنامه نویسی شبکه

    علاوه بر نوشتن کدها بايد روي ديتابيس در طراح ديتابيس کليک راست کنيد و گزينه Properties ر ا انتخاب و سپس گزينه Set Events On را انتخاب کنيد.
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  37. #77

    نقل قول: برنامه نویسی شبکه

    #DEFINE DVDLOGIN_LOC	[Enter password:]
    #DEFINE DVDLOGINCAP_LOC [DVD Login]
    #DEFINE DATAOPEN_LOC Database opened by
    #DEFINE DATACLOSED_LOC Database closed by
    #DEFINE NOMOD_LOC "Sorry, you cannot modify this table."


    PROCEDURE dbc_BeforeOpenTable(cTableName)
    *Just before a table or view is opened. Return .F. to prevent table or view being opened.
    IF ATC("ctablename",cTableName)#0 AND UPPER(ALLTRIM(INPUTBOX(DVDLOGIN_LOC,DVDLOGINCAP_LO C)))#"123456"
    *IF ATC("operator",cTableName)#0 AND USERNAME#"23456"

    * Since this is a sample, we will ignore password, however, you can enforce it by returning .F.
    RETURN .F.
    *RETURN .T.
    ENDIF
    ENDPROC


    PROCEDURE dbc_OpenData(cDatabaseName, lExclusive, lNoupdate, lValidate)
    *Immediately after DBC is opened.
    LOCAL lcStr,lcLog
    TEXT TO lcStr NOSHOW TEXTMERGE
    DATAOPEN_LOC <<SYS(0)>> <<DATETIME()>>.

    ENDTEXT
    lcLog = FORCEEXT(cDatabaseName,"LOG")
    STRTOFILE(lcStr,lcLog,.T.)
    ENDPROC


    PROCEDURE dbc_CloseData(cDatabaseName, lExclusive, lNoupdate, lValidate)
    *Immediately after DBC is opened.
    LOCAL lcStr,lcLog
    TEXT TO lcStr NOSHOW TEXTMERGE
    DATACLOSED_LOC <<SYS(0)>> <<DATETIME()>>.

    ENDTEXT
    lcLog = FORCEEXT(cDatabaseName,"LOG")
    STRTOFILE(lcStr,lcLog,.T.)
    ENDPROC


    PROCEDURE dbc_BeforeModifyTable(cTableName)
    * Just before a table is modified. Return .F. to prevent modification.
    IF ATC("ctablename",cTableName)#0
    MESSAGEBOX(NOMOD_LOC)
    RETURN .F.
    ENDIF
    ENDPROC

    اين كدها در مثالهاي خود ويژوال موجود كه درedit stroed procedures ذخيره و براي امنيت ديتاباس استفاده ميشه
    آخرین ویرایش به وسیله new_day : چهارشنبه 03 شهریور 1389 در 23:32 عصر

  38. #78

    نقل قول: برنامه نویسی شبکه

    http://social.msdn.microsoft.com/For...a-798c91028f87
    به اين ادرس نگاه كنيد
    در مورد امنيت جدول و پسورد گذاري موضوع جالبي داره
    Procedure dbc_OpenData(cDatabaseName, lExclusive, lNoupdate, lValidate)

    *Immediately after DBC is opened.

    If Vartype(ANY_RANDOM_VARIABLE)= "U" .Or. ANY_RANDOM_VARIABLE<> "YOUR_PASSWORD"

    Return .F.

    Endif

    Endproc



  39. #79

    نقل قول: برنامه نویسی شبکه

    هنگامي كه جدولي خارج از برنامه بخواهد باز بشه و براي كنترل متغيري در برنامه تعريف كرده باشيم چون متغير براي كنترل مجاز بودن و غير مجاز بودن در بانك تعريف نــــــــــــشده پيام خطا ميده اما در برنــــامه فوق Vartype(ANY_RANDOM_VARIABLE)= "U" ميگه اگه چنين متغيري نامفهوم و ناشناخته بود يا مخالف پسورد بود دسترسي را غير ممكن كن

  40. #80

    نقل قول: برنامه نویسی شبکه

    با سلام
    ايا براي باز كردن جداول يك بانك در محيط شبكه براي بالا بردن سرعت يكي از اين دو راه زير مناسب است يا خير؟
    1- در فرم اصلي برنامه در متدي تمام جداول را با دستور USE database!table SHARED IN 0 باز كنيم و
    datasession مساوي يك قرار بدهيم تا از جداول باز شده در تمام فرمها بتونيم استفاده كنيم.
    2-در data environment فرم اصلي كليه جداول را انتخاب كنيم كنيم و بازم datasession مساوي يك قرار بدهيم تا بتونيم در تمام فرمها از انها استفاده كنيم
    و در دو حالت براي خواندن و ثبت و ويرايش از دستورا ت sql مثل insert into , update و SELECT ... INTO cursor استفاده كنيم

صفحه 2 از 3 اولاول 123 آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •