PDA

View Full Version : مشکل در setup



ladangh
شنبه 09 آبان 1383, 19:40 عصر
سلام به دوستان
من یک برنامه با دلفی نوشتم که از بانک sql server استفاده میکنه و نمیدونم چطوری
setup رو بسازم
البته تو سایت گشتم ولی چیزی پیدا نکردم.
من از installshield استفاده می کنم.
لطفا راهنمایی کنید.

vcldeveloper
یک شنبه 10 آبان 1383, 02:46 صبح
اگر از ADO استفاده کردی، برای SQL Server لازم نیست کار خاصی روی setup انجام بدی. بطور عادی Setup رو بساز.

ladangh
یک شنبه 10 آبان 1383, 13:14 عصر
ازado استفاده کردم
اما یه error میده

vcldeveloper
دوشنبه 11 آبان 1383, 02:32 صبح
ویندوز کاربر چیه؟!
نمی دونم کلا درایورهای ADO روی سیستمش نصب نیست یا اینکه باید Alias مورد نظر رو توی سیستم کاربر هم درست کنی. روش درست کردنش الان یادم نیست. آخه من از ODBC بطور جدی استفاده نمی کنم!
حالا لازم حتما از ODBC استفاده کنی؟ اصلا برنامه چی هست؟ تحت شبکه هم باید کار کنه یا فقط روی یه کامپیوتر باید نصب بشه؟

ladangh
دوشنبه 11 آبان 1383, 10:12 صبح
ویندوز 98se
نه لازم نیست .آیا شما راه حل دیگه ای رو پیشنهاد میکنید.
برنامه تحت شبکه نیست.یک برنامه خیلی ساده.

vcldeveloper
سه شنبه 12 آبان 1383, 03:00 صبح
ویندوز 98SE. برنامه تحت شبکه نیست.یک برنامه خیلی ساده.
خب، شما یه ADOConnection روی فرم یا روی Data Module برنامه ات بزار. بعدشم با استفاده از خاصیت ConnectionString به سرور وصل شو. خاصیت Connection تمام ADOTable ها یا ADOQuery ها رو هم روی همون ADOConnection تنظیم کن.

یه نسخه از بانک اطلاعاتی خالی رو با برنامه ات به مشتری بده. (می تونی InstallShield رو طوری تنظیم کنی که هر فایلی رو که میخوای با برنامه ات روی سیستم کاربر توی هر پوشه ای که خواستی کپی کنه.
مثلا می تونی توی InstallShield Express در قسمت Groups and Files یه گروه جدید ایجاد کنی و اسمش رو بذاری Database، بعد فایلهای خالی database ات رو به این گروه اضافه کن و مسیر نصب این فایها رو هم فرضا بزار <INSTALLDIR> - یعنی فایهای بانک اطلاعاتی همون جایی کپی بشن که برنامه نصب شده. به این ترتیب هنگام نصب برنامه روی سیستم کاربر فایهای database هم در همون مسیر کپی میشند)
اگر فایهای database رو در مسیر <INSTALLDIR> نصب کرده باشی، می تونی با استفاده از دستور:


ExtractFilePath(Application.ExeName);

مسیر فایل رو بدست بیاری. مثلا اگه اسم فایل database ات باشه MyDatabase، مسیر فایل میشه:


DatabasePath := ExtractFilePath(Application.ExeName) + '\MyData.MDF';


حالا می تونی در رویداد OnCreat فرم یا Data Module ات با استفاده از این کدها ConnectionString رو تنظیم کنی:

1- اگر از Username و password برای کانکت شدن به سرور استفاده می کنی و database ات هم روی سیستم کاربر به سرور Attache نشده، از یه ConnectionString مثل این استفاده کن:


ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;' +
'Persist Security Info=False;' +
'User ID=Your UserName;' +
'Password=Your Password;' +
'Initial Catalog=Your Database Name;' ;

*دقت کن که بعد از هر خط در داخل علامت نقل قول یه SemiColon وجود داره!
* بجای Your Username و Your Password یوزر نیم و پسوردی رو که استفاده می کنی قرار بده. بجای Your .MDF file's path هم مسیر فایل MDF بانک اطلاعاتی رو بزار، مثلا اگه بر اساس مثالی که در بالا زدم عمل کنی خط آخر اینجوری میشه:


'Initial File Name=' + ExtractFilePath(Application.ExeName) + '\MyData.MDF;' ;


2- اگر database روی سیستم کاربر از قبل Attache شده، دیگه نیازی به این همه دردسر نیست و لازم نیست فایهای database رو با برنامه ات نصب کنی. فقط از یه ConnectionString مثل این استفاده کن:


// if your database is already attached to the server

ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;' +
'Persist Security Info=False;' +
'User ID=Your UserName;' +
'Password=Your Password' +
'Initial Catalog=Your Database Name' ;


نکته: قبل از تنظیم ConnectionString خاصیت Connected رو مساوی False کن. بعد از تنظیم ConnectionString با True کردن Connected برنامه ات به سرور وصل میشه.
اگر هم نمی خوای هربار ازت Username و Password بگیره خاصیت LoginPrompt رو False کن.

امیدوارم متوجه شده باشی.
می بخشی اگه توضیحاتم زیاد جالب نیست. :oops: (آخه ساعت 3.30 صبح سه شنبه است!)

MiRHaDi
سه شنبه 12 آبان 1383, 06:21 صبح
سلام
برای اینکه بخوای فایل پیش Exe باشه لازم نیست این همه درد سر بکشی
کافیه آدرس نذاری !‌فقط بگی FileName.Ext همین
بای

vcldeveloper
سه شنبه 12 آبان 1383, 10:31 صبح
کافیه آدرس نذاری !‌فقط بگی FileName.Ext همین
به شرطی که در Shortcut ای که setup میسازه درقسمت Start in همون آدرسی باشه که در قسمت Target هم هست!