PDA

نسخه کامل مشاهده نسخه کامل : برداشتن فایل قفل در کنار برنامه اکسس



as13851365
31-07-2007, 10:58
چه طوری می شه کاری کرد که وقتی با دلفی بانک اکسس را باز می کنیم فایلی که در کنار فایل اکسس با علامت قفل ظاهر می شود را حذف کنیم

در کل وقتی برنامه را اجرا می کنیم این فایل ظاهر نشود ( فایلی که یک علامت قفل دارد )

as13851365
01-08-2007, 10:32
مثل اين كه همه مثل موبايل شدن و درگه در دست رس نيستن و اونائي هم كه در دست رس هستن محل نمي زارن

اشكال نداره خداي ماها هم بزرگ

meghdad23
01-08-2007, 11:03
آخه این یه چیز استاندارد و ما نمی تونیم انو بر داریم(به نظر من)

NoneForce
01-08-2007, 11:14
سلام
قبلا بحث شده.
ديتابيس را بايد بصورت exclusive باز كنيد.
براي امتحان كردن، بانك را را MS Access باز كنيد. ميبينيد كه كنار فايل يك فايل ديگر ايجاد مي شود. حالا از منوي File گزينه Open را انتخاب كنيد، در پنجره باز شده از منوي دكمه Open گزينه Open Exclusive را انتخاب كنيد، خب حالا نگاهي به محل بانك بندازيد، خبري از فايل دوم نيست.

meghdad23
01-08-2007, 11:38
خوب پس حالا که میشه اونو برداشت پس اصلا این فایل برای چی هست

as13851365
02-08-2007, 08:28
سلام
قبلا بحث شده.
ديتابيس را بايد بصورت exclusive باز كنيد.
براي امتحان كردن، بانك را را MS Access باز كنيد. ميبينيد كه كنار فايل يك فايل ديگر ايجاد مي شود. حالا از منوي File گزينه Open را انتخاب كنيد، در پنجره باز شده از منوي دكمه Open گزينه Open Exclusive را انتخاب كنيد، خب حالا نگاهي به محل بانك بندازيد، خبري از فايل دوم نيست.


دوست عزيز شما كه مي گيد قبلا بحث شده اگر آدرسي بدبد خيلي ممنون مي شم من همه جا را كشتم چيز به درد بخوري پيدا نكردم كه يه بحث جديد را باز كردم

اگر آدرس را مي دادي خيلي بهتر مي شد

در ضمن من نمي خوام برنامه را با خود اكسس باز كنم ؟
اگر مي شه اين كار را با برنامه نويسي به زبان دلفي بكيد خيلي ممنون مي شم

يعني چطور اين فايل اكسس را با دلفي باز كنيم كه اين فايل قفل در كنارش ساخته نشه

as13851365
02-08-2007, 08:33
خوب پس حالا که میشه اونو برداشت پس اصلا این فایل برای چی هست


خوب دوست عزيز به نظر من ساخت اين فايل يه حكمتي داره نمي دونم ولي فكر كنم براي اين باشه كه

وقتي فايل اكسس را براي يك برنامه ايجاد مي كني وقتي كه در برنامه ات اين فايل را باز مي كني اين فايل با علامت قفل ساخته مي شه كه نشان بده برنامه هاي ديگر نمي تونن از اين فايل استفاده كنند

يا

تمام تغييراتي كه برنامه در محتواي بانك ايجاد مي كنه كه قبل از اين كه در فايل اصلي ذخيره شود در اين فايل ذخيره مي شود بعد در فايل اصلي ذخيره مي شه

يا

من نمي دونم براي چي ساخته مي شه اما اگر مي شد از ساخته شدن اين فايل جلو گيري كرد خيلي بهتر مي شد
يا حداقل در مسيري غير از مسيري كه فايل اكسس قرار داره ساخته بشه مثلا در پوشه ويندوز !

NoneForce
02-08-2007, 10:15
دوست عزيز شما كه مي گيد قبلا بحث شده اگر آدرسي بدبد خيلي ممنون مي شم من همه جا را كشتم چيز به درد بخوري پيدا نكردم كه يه بحث جديد را باز كردم

اگر آدرس را مي دادي خيلي بهتر مي شد

در ضمن من نمي خوام برنامه را با خود اكسس باز كنم ؟
اگر مي شه اين كار را با برنامه نويسي به زبان دلفي بكيد خيلي ممنون مي شم

يعني چطور اين فايل اكسس را با دلفي باز كنيم كه اين فايل قفل در كنارش ساخته نشه

سلام
در قسمت جستجوي پيشرفته دنبال كلمه exclusive بگيرديد ، انجمن را هم دلفي انتخاب كنيد.

as13851365
04-08-2007, 08:09
با سلام

با تشکر از تمام کساني که به همديگر کمک مي کنند

من يه مدت بود دنبال راهي بودم وقتي که بانک اکسس را باز مي کنم فايل ديگري که کنارش ساخته مي شه را نبينم
خلاصه هر کاري کردم نشد که نشد تا اين که به کمک دوستان به اين نتيجه رسيدم...

وقتي که در برنامه هاي خود از بانک اکسس استفاده مي کنيد هنگامي که برنامه را اجرا مي کنيد و بانک را باز مي کنيد يک فايل همنام با فايل اکسس و با يک علامت قفل و با پسوند ldb ساخته مي شود

براي جلوگيري از ساخته شدن اين فايل مراحل زير را انجام بديد:

يک ADOConnection1 روي فرم قرار دهيد و آن را به بانک ( فايلي که با اکسس ساخته شده ) وصل کنيد
در قسمت Propeties کامپوننت ADOConnection1 مقدار گزينه Mode را به cmShareExclusive تغيير دهيد

یا اگر از Table1 استفاده می کنید مقدار گزینه Exclusive را به True تغییر دهید

کار تمام شد.

از تمام دوستان تشکر مي کنم اميدوارم که هميشه موفق باشند

as13851365
04-08-2007, 08:15
اما به مشکل دیگه این است که :

چطوری می تونیم در هنگام اجرای برنامه مقادیر Mode را در کامپوننت ADOConnection1 تغییر دهم ؟

یعنی در حین اجرا مقدار cmShareExclusive را بهش مقدار دهی کنم و یا مقدارش را عوض کنم ؟

as13851365
04-08-2007, 19:37
d.asle.Connected:=false;

d.asle.ConnectionString:='Provider=Microsoft.Jet.O LEDB.4.0;User ID=Admin;Data Source='+
pchar(open.FileName)
+';Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry
Path="";Jet OLEDB:Database Password=¶$‘ÂöøøòÑíÇá¡ËÂŽÅÃÜ«; Jet OLEDB:Engine Typ'+
'e=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk
Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet
OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on '+
'Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';

d.asle.Mode:=cmShareExclusive;

d.asle.Connected:=false;

خوب لطفا بگید کجای این کد اشکال داره که نمی تونم بعد از تغییر بانک با دستور زیر مقدار Mode را تغییر بدم
d.asle.Mode:=cmShareExclusive;

هرکاری می کنم نمی تونم این مقدار را تغییر بدم و مقدار Mode برابر با cmShareDenyNone می شود و نمی توان این مقدار را تغییر داد و در نهایت فایل مزبور دوباره دیده می شه ( فایلی با علامت قفل و هم نام با فایل اکسس و با پسوند LDB )

1795
09-08-2007, 08:34
با سلام
فكر كنم بايد connected=true باشه تا جدول كانكت بشه و مشكل حل بشه

as13851365
11-08-2007, 09:06
با سلام
فكر كنم بايد connected=true باشه تا جدول كانكت بشه و مشكل حل بشه

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

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

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

به محض این که در برنامه بانک را تغییر می دم دیگر نمی تونم Mode را تغییر دهم وقتی هم که بانک اصلی را دوباره به برنامه وصل می کنم باز هم Mode را نمی تونم تغییر بدم

اگر تونستید سوال من را بفهمید من منتظر جواب و یا راهنمائی شما هستم اما اگر نتونسیتد بفهمید من یک نمونه برنامه برای شما می نویسم تا مشکل من را راحتتر بفهمید