صفحه 1 از 2

حذف فايلي با علامت فقل در اكسس

ارسال شده: چهارشنبه ۱۰ مرداد ۱۳۸۶, ۱۱:۲۷ ق.ظ
توسط as13851365
ارز دوستان كسي مي تونه در اين باره كمكي بكنه :

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

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

البته بعد از بستن برنامه ( بسته شدن بانك اكسس ) اين فايل حذف مي شه اما مي خوام با باز شدن بانك اين فايل ايجاد نشه

ارسال شده: چهارشنبه ۱۰ مرداد ۱۳۸۶, ۲:۰۲ ب.ظ
توسط Mahdi1944
as13851365,
ضمن عرض خوش‌امد به شما دوست گرامي
اين موضوع در تمام اجزاي MSOffice وجود داره، اين فايل اطلاعات زمان اجرا رو در خودش ذخيره ميکنه‌، البته موضوع مهمي هم نيست، شما ميتونيد مسير فايل رو جايي قرار بديد که در ديد نباشه، و راهکار بهتر هم استفاده از SQLServer به جاي Access هست

ارسال شده: پنج‌شنبه ۱۱ مرداد ۱۳۸۶, ۸:۲۲ ق.ظ
توسط as13851365
ببخشيد اما اين فايل كه در كنار اكسس باز مي شه براي اين است كه ( البته فكر كنم ) اين فايل نشان مي ده كه فايلي كه ما در اكسس ساختيم براي يك برنامه است و يك برنام حق استفاده از اين فايل را دارد

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

در ضمن من چطوري مي تونم مسير ساخت اين فايل قفل دار را جاي ديگري قرار دهم خواهشا كمي كمك كنيد و اگر مي شه اين را هم بگيد

ارسال شده: پنج‌شنبه ۱۱ مرداد ۱۳۸۶, ۳:۳۵ ب.ظ
توسط Mahdi1944
as13851365 جان
اون قفل براي اون فايل دومي که ايجاد ميشه چنين مفهومي داره و در حال استفاده هست، اما شما خيلي راحت ميتونيد خود ديتابيس رو در چند برنامه مورد استفاده قرار بديد، اما امکان نوشتن همزمان روي ديتابيس وجود نداره، اما براي نمايش ميشه چند برنامه از يک فايل query بگيرند، اگر به هر دليلي نميتونيد همزمان استفاده کنيد، زمان اجرا يک کپي از فايل با برنامه نويسي ايجاد کنيد و بعد از اتمام کار هم اون رو حذف کنيد، در مورد مسير هم بنده برداشتم اين بود که شما نميخواهيد اون فايل کنار فايل اصلي ايجاد بشه، به همين دليل نوشتم موضوع مهمي نيست و ميتونيد اون رو در مسيرهايي قرار بديد (خود ديتابيس) که قابل مشاهده نباشه

ارسال شده: جمعه ۱۲ مرداد ۱۳۸۶, ۸:۳۷ ق.ظ
توسط as13851365
با سلام خدمت شما دوست گرامي

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

من اين كار را كردم اين بار با كپي كردن از برنامه تا 5 برنامه همزمان از بانك استفاده مي كردن اما بازم اين فايل كه همنام با فايل اصلي و با پسوند ( ل د ب ) ساخته مي شه

اگر لطف كنيد واضحتر بگيد خيلي ممنون مي شم

اصلا كل تلاش من اين است كه اين فايل در كنار برنامه ايجاد نشه مي دونيد چرا ؟

تنها به اين دليل : من يك برنامه نوشتم و در اين برنامه از بانك اكسس استفاده كردم و پسوند بانك اكسس را تغيير دادم كه كسي ( كاربرهاي معمولي ) نفهممن باك از چي ساخته شده است اما وقتي كه برنامه را اجرا مي كني اين فايل هر چي ساخته بوديم را خراب مي كنه و كاربر به راحتي مي تونه بفهمه كه جربان جي هست

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

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

ارسال شده: شنبه ۱۳ مرداد ۱۳۸۶, ۸:۱۱ ق.ظ
توسط as13851365
با سلام

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

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

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

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

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

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

کار تمام شد.

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

ارسال شده: شنبه ۱۳ مرداد ۱۳۸۶, ۸:۱۳ ق.ظ
توسط as13851365
اما یه مشکل وجود داره و اون هم این است که در هنگام اجرای برنامه

چطور می تونم مقادیر Mode را تغییر دهم ؟

اگر کمکم کنید ممنون می شم

ارسال شده: شنبه ۱۳ مرداد ۱۳۸۶, ۹:۰۸ ق.ظ
توسط Mahdi1944
as13851365 جان
تا اونجايي که ميدونم تا زماني که ديتابيس در حال استفاده هست نميشه مد رو تغيير داد

ارسال شده: شنبه ۱۳ مرداد ۱۳۸۶, ۳:۳۷ ب.ظ
توسط as13851365
خوب حداقل زحمت بگشید بگید که چطوری می تونم مقدارش را تغییر دهم
adoconnection.mode:='';
این جوری که جواب نمی ده راه دیگری باید باشد

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

اگر می شه بگید که چطوری باید این کار را انجام بدم ؟

یعنی مقدار Mode را چطور تغییر بدم ؟ مانند تغییر مقدار یک رشته نیست!

ارسال شده: شنبه ۱۳ مرداد ۱۳۸۶, ۶:۴۰ ب.ظ
توسط Mahdi1944
as13851365 جان
اين کار خيلي ساده صورت ميگيره
به اين صورت:
Please Login or Register to see this code
توجه داشته باشيد نبايد از " و امثال اون استفاده کنيد، دلفي CaseSencetive هست و بايد دقيق بنويسيد

ارسال شده: شنبه ۱۳ مرداد ۱۳۸۶, ۷:۳۳ ب.ظ
توسط as13851365
خوب دوست گرامی من هم این کار را انجام می دم اما برنامه قبل از اجرا پیغام خطا می ده :
Undeclared identifier : 'cmShareExclusive' s

این پیغام خطای بالا چیه نمی دونم ؟

در ضمن من قبل از استفاده از دستورات مذکور کانکشن بانک را غیره فعال می کنم و بعد از اجرای دستور دوباره فعال می کنم

اصلا سوال من این است :
من یک برنامه نوشتم که کاربر می تونه اطلاعات برنامه را در فایل جداگانه ای ذخیره کند بعد می تواند این فایل را در برنام باز کند و مورد استفاده قرار دهد اما یک مشکل این است که من در اول برنامه مقدار Mode را به cmShareExclusive تنظیم می کنم و برنامه درست کار می کند اما وقتی که کاربر فایلی را در برنامه می سازد و دوباره این فایل را بازمی کند برنامه تنظیمات Mode را به حالت اول برمی گرداند و باز این فایل لعنتی ساخته می شه

من هر کاری کردم نشد که نشد خواهشا اگر وقت دارید کمک کنید تا این مشکل را حل کنم

ارسال شده: شنبه ۱۳ مرداد ۱۳۸۶, ۷:۴۸ ب.ظ
توسط Mahdi1944
as13851365 جان
دقيقا سينتکس رو به همون شکل بالا نوشتيد؟ (حروف برزگ و کوچک اهميت دارند و دور cmShareExclusive نبايد هيچ کت يا پرانتزي باشه)
در کل cmShareExclusive براي حالت readonly هست، مثل زماني که ميخواهيد فايل فقط براي خوندن و از روي CD اجرا بشه و يا همين کاربردي که مد نظر شما هست، يعني عدم ايجاد اون فايل، شما زمان هر نوشتن بايد مد رو تغيير بديد و بعد از اتمام عمليات دوباره مد رو به حالت cmShareExclusive برگردونيد، امتحان کنيد ببينيد در حالتي که کانکشن غير فعال نشده کار ميکنه يا نه، منظور بنده از در حال استفاده بودن، زمان نوشتن روي ديتابيس بود، نه خوندن از اون، پس قاعداتا نبايد کانکشن رو غير فعال کنيد براي تغيير از حالت فقط خواندني به حالت خواندن و نوشتن