PDA

View Full Version : بانک بدون وابستگی



free
یک شنبه 13 شهریور 1384, 11:38 صبح
سلام دوستان.
من از بانک access استفاده میکنم.برای اجرای برنامه هایم باید بانک را حتما در مسیر مشخصی قرار دهم .حال میخواهم برنامه هایم به مسیر بانک وابسته نباشند.یعنی بانک برنامه مانند فایل exe در هر جا که کاربر بخواهد قرار داده شود.لطفا راهنمایی نمایید.

Touska
یک شنبه 13 شهریور 1384, 11:45 صبح
خوب قربون شکلت بشم. اگر از Ado استفاده کنی و بانکت رو تو root برنامه ات

بزاری مشکلت حل می شه.

free
یک شنبه 13 شهریور 1384, 12:06 عصر
چطوری؟لطفا بیشتر راهنمایی نمایید.

Naficy
یک شنبه 13 شهریور 1384, 17:56 عصر
در دلفی چند شیوه اتصال به دیتابیس وجود دارد:
1 - BDE از طریق اشیای TTable و TDatabase و ...
2 - ADO از طریق اشیای TADOTable و TADOConnection و ...
3 - Interbase و... (گزینه هایی که کمتر بدرد می خورند!)
استفاده از ADO مزیتهایی نسبت به BDE دارد. مثلا اگر از BDE استفاده کنید باید روی هر کامپیوتری که می خواهید برنامه تان را در آن اجرا کنید BDE نصب کنید. اما ADO نیازی به نصب ندارد.

--------------
اما اگر مشکل شما فعلا یافتن مسیر بانک اطلاعاتیتان است (آنطور که از سوالتان بر می آید)، می توانید آنرا همواره از درون دایرکتوری ای که exe تان قرار دارد باز کنید.
با دستور زیر می توانید دایرکتوری ای که exe برنامه از آن فراخوانی شده را بیابید:

path := ExtractFilePath( Application.ExeName );
حال که می دانید محل واقعی exe برنامه کجاست، به بانک اطلاعاتی بگویید از آن مسیر باز شود.
شیوه فهماندن این موضوع به بانک اطلاعاتی بستگی به شیوه اتصال (ADO یا BDE) دارد که تا ندانم کدام را می خواهید نمی توانم کمک کنم!

اگر بازهم مشکلی دارید یا زیادی جواب بی ربط می شنوید باز هم دقیقتر سوال کنید...!!! :چشمک:

free
دوشنبه 14 شهریور 1384, 08:40 صبح
اول از دوستان متشکرم.
naficy جان من از ado استفاده میکنم.

Naficy
دوشنبه 14 شهریور 1384, 12:15 عصر
برای اتصال از طریق ado از connectionstring استفاده می شود. در زمان طراحی می توان با زدن کلید سه نقطه کنار این خصوصیت و زدن دکمه Build یک connectionstring ایجاد کرد.
راحتترین راه ایجاد یک connectionstring از چنین راهی و سپس تغییر آن بدلخواه است.
برای اتصال به access، درون connectionstring مسیر بانک اطلاعاتی ذخیره می شود. آنرا بیابید و به دلخواه تغییر دهید.

free
سه شنبه 15 شهریور 1384, 08:35 صبح
متشکرم.از همین روش استفاده میکنم.اما میخواستم بدانم غیر از راه آیا امکان دارد از طریقی برنامه بطور خودکار مسیر بانک را تشخیص دهد؟یعنی بانک در هر جای هارد قرار دارد آنرا پیدا کند؟آیا این روش بهینه است یا همین روشی را که naficy گفتند بهترین راه است؟

Naficy
سه شنبه 15 شهریور 1384, 15:17 عصر
از شر من خلاص نمی شید!
یک راه دیگر این است که بانک را هرجایی می خواهید قرار دهید، اما آدرس آن را در رجیستری (یا حتی یک فایل متنی کنار exe برنامه) ذخیره کنید.

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

free
چهارشنبه 16 شهریور 1384, 08:25 صبح
دقیقا نمی دانم منظورتان چیست.از روی اسم بانک نمیشود تشخیص داد؟

rostamedastan
چهارشنبه 16 شهریور 1384, 11:35 صبح
آیا اگر sql بود نیز باید مانند اکسس مسیر بانک را با استفاده از دستوری که گفتید پیدا کنیم و در coccectio string قرار دهیم ؟

free
پنج شنبه 17 شهریور 1384, 09:13 صبح
اگر منظورتان sol server است باید connection را Microsoft OLE DB Provider for SQL Server انتخاب و سپس ip سرور را داده و نام بانک مورد نظرتان را انتخاب می کنید.و دیگه به جستجوی بانک نیازی نیست چون ارتباط با sql server است.

rostamedastan
پنج شنبه 17 شهریور 1384, 20:49 عصر
سلام عللیکم
با تشکر
من به اس کیو ال وصل شدم و مشکلی هم ندارم اما وقتی کامپیوتر و یا جای برنامه عوض می شود error می دهد
cannot open database requested in login 'letter'.login fails
دوست عزیز ip سرور را باید از کجا پیدا کنم و کجا باید قرار دهم.

free
شنبه 19 شهریور 1384, 10:10 صبح
اگر روی properties مربوط به کانکشن شبکه را بیاورید در قسمت tcp/ip می توانید آ پی سرور را تشخیص دهید یا در ms dos از دستور ipconfig برای بدست آوردن آی پی استفاده نمایید.در دلفی هم در خاصیت connection string وقتی دکمه build را کلیک می کنید در قسمت select or enter a server name آی پی سرور را وارد نمایید.
موفق باشید!

rostamedastan
شنبه 19 شهریور 1384, 12:35 عصر
از راهنمایی شما متشکرم.
اینکار را انجام دادم و موفق شدم.خیلی لطف کردید
ولی در کامپیوترهای خانگی که شبکه ای وجود ندارد آیا این قسمت را همواره باید خالی بگذاریم و سرور مربوط به اس کیو ال را باید همواره در حالت روشن(start) قرار داد؟

free
یک شنبه 20 شهریور 1384, 09:04 صبح
خوشحالم که مشکلتان رفع شد.راستش من با sql server در شبکه کار کردم و دقیقا نمی دانم که روی کامپیوترهای خانگی که کارت شبکه ندارند باید چکار کرد.فکر می کنم که روی کامپیوتر خانگی نیازی به تعریف ip نباشد و sql server بتواند ارتباطش را برقرار کند.
از دوستان بخش دلفی و sql خواهشمند است در این رابطه اگر امکان دارد بیشتر راهنمایی نمایند.

Naficy
یک شنبه 20 شهریور 1384, 13:28 عصر
حرف که گوش نمی کنید! :عصبانی: از اول هم می گین Access بعد معلوم می شه اصلا مهم نبوده.
نمی خواستم دیگه صحبتی بکنم، چون ظاهرا حرف همو بهتر می فهمین!!!! :چشمک:
راه درست اینه که تنظیمات اتصال یه جایی ذخیره بشن. مثلا اگه ip یا نام سرور عوض بشه چیکار می کنین؟ یا اگه دوتا سرور باشن؟ اگه سرور پسورد sqlش عوض شد چی؟ باید مثلا یه فایل ini کنار برنامتون باشه که تنظیمات توش باشه.
ضمنا برای اتصال به سرور به ipش اصلا نیازی نیست. همون نام سرور رو استفاده کنین.

solook
پنج شنبه 23 آذر 1385, 05:46 صبح
از دوستان عزیز می خوام راهنمایی کنن چطور میشه توسط ADOدیتابیس accessرا به دلفی متصل کرد. و مسیر دیتابیس هم بدون وابستگی باشه
دوستان قبلا توضیحاتی دادند اما اگه ممکنه کمی بیشتر توضیح بدین

اَرژنگ
پنج شنبه 23 آذر 1385, 05:55 صبح
از دوستان عزیز می خوام راهنمایی کنن چطور میشه توسط ADOدیتابیس accessرا به دلفی متصل کرد. و مسیر دیتابیس هم بدون وابستگی باشه
دوستان قبلا توضیحاتی دادند اما اگه ممکنه کمی بیشتر توضیح بدین
از مثال بهتر توضیح‌نیست.
C:\Program Files\Borland\Delphi7\Demos
به دایرکتویهایه داتابیس و اِی‌دی‌او یک نگاه بندازید، به مای‌بیس و بقیه دایرکتوریها هم نگاه بندازید.

ashkan2005
پنج شنبه 02 فروردین 1386, 06:56 صبح
برای اتصال از طریق ado از connectionstring استفاده می شود. در زمان طراحی می توان با زدن کلید سه نقطه کنار این خصوصیت و زدن دکمه Build یک connectionstring ایجاد کرد.
راحتترین راه ایجاد یک connectionstring از چنین راهی و سپس تغییر آن بدلخواه است.
برای اتصال به access، درون connectionstring مسیر بانک اطلاعاتی ذخیره می شود. آنرا بیابید و به دلخواه تغییر دهید.
سلام
ببخشد میشه بگین از سه نقطه چطور میشه استفاده کرد.اگه میشه یه مثال بزنین.البته در access:چشمک:

ashkan2005
یک شنبه 05 فروردین 1386, 09:49 صبح
خوب قربون شکلت بشم. اگر از Ado استفاده کنی و بانکت رو تو root برنامه ات

بزاری مشکلت حل می شه.
سلام عیدت مبارک. منظورت از root دقیقا" کجاست.میشه یه کم بیشتر توضیح بدی.

zman123456
یک شنبه 05 فروردین 1386, 12:13 عصر
منظور از Root در موضوع فوق مسیر جاری فایل Exe برنامه است.برای استفاده از سه نقطه اینطوری که تو پنجره Properties‌ روی property‌ مورد نظر یعنی ConnectionString‌ که قرار بگیرید یک دکمه سه نقطه ظاهر می شود که با زدن آن میشه وارد ویزاد طراحی یک ConnectionString‌برای ADOConnection شد.

zman123456
یک شنبه 05 فروردین 1386, 12:17 عصر
برای سیستمهای خانگی می توانید از عبارت Local به جای ip سرور استفاده کنید.

ashkan2005
یک شنبه 05 فروردین 1386, 12:39 عصر
نه منظور اینه که می خواهم وقتی کاربر برنامه رو روی کامپیوتر خودش نصب کرد نیاز به کپی database در محلی که من در root برنامه تعریف کردم نباشه.:متفکر:

SYNDROME
یک شنبه 05 فروردین 1386, 12:45 عصر
دوست عزیز
شما فقط در هنگام تعریف ADO در قسمت Select Or Enter a DataBase Name نام فایل خود را وارد کنید مانند مثال زیر
D:\Folder\DataBaseName
DataBaseName
(در بالا دیدی که من مسیر فایل را پاک کردم)
و دکمه OK را کلیک کنید و در ضمن بانک را در کنار Exe خود قرار دهید.
حال در هر مسیری که Exe شما اجرا شود مسیر بانک شما خواهد بود و نیازی به تعیین مسیر نیست و فرقی نمی کند که برنامه در کجا قرار داشته باشد.(به قول دوستمون عجب عکسی گذاشتی خدا خودش کمک کنه)
----------------------------------------------------------------------------------------------
آمدی با تاب گیسو تا که بیتایم کنی **********زلف بر یک سو زنی و غرق مهتابم کنی
آتش از برق نگاهت ریختی بر جان من*********سوختی تا در میان شعله ها آبم کنی

ashkan2005
یک شنبه 05 فروردین 1386, 15:02 عصر
سلام عیدتون مبارک
با تشکر از شما مشکلم حل شد.(منظور از عکس کدوم عکسه.)

SYNDROME
یک شنبه 05 فروردین 1386, 15:27 عصر
خواهش می کنم
ولی منظورم از عکس عکس شما نبود عکس کاربر "Free" بود که اشتباه گرفتم.:خجالت:
یک توصیه دوستانه سعی کنید کم کم با SQLServer کار کنید.(البته من هم در زمان دانشجویی به Access کار می کردم)