برگزیده های پرشین تولز

اتصال به دیتا بیس روی وب

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
سلام
من دارم یه برنامه واسه یه فروشگاه که چندتا شعبه داره مینویسم
میخوام طوری باشه که هر یوزری از هر کدوم از فروشگاهها خرید کردن مسئول فروش از دیتا بیس برنامه اون جنس رو یکی کم کنه اما مشکلم اینه که نمی دونم چطور این اطلاعات رو منتقل کنم
فعلا دارم یه کاری میکنم که هر کدوم از مسئولین فروش وقتی جنسی رو کم میکنن یا اضافه میکنن یه ایمیل واسه بقیه بره که اونا هم اون جنس رو کم یا زیاد کنن
اما فک نمی کنم راه خوبی باشه
اگه بشه یه دیتا بیس باشه و همه به اون متصل شن فک کنم بهتر باشه
سایت این شرکت رو سرور لینکس هست و دیتا بیس هم فعلا اکسسز هستش
شما در این مورد نظری نداری؟
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
یه راه اینکه کامپوتر ها تمام مدت ان لاین باشن و بانکتون رو یه سرور mysql یا MS SQL بگیرید و تمام اطلاعات رو اونجا ذخیره کنید به ایین ترتیب همه به از یه بانک و یه جور اطلاعات استفاده می کنن
 

bird

کاربر تازه وارد
تاریخ عضویت
22 جولای 2005
نوشته‌ها
106
لایک‌ها
0
فكر كنم از اينترانت هم بشه استفاده كرد، مثل اينترانت روزنامه همشهري، در اينصورت فقط پول تلفن بايد بديد. البته اونم زياد مي شه. البته يه روش هم الان به ذهنم رسيد كه شايد بعدا گفتم :p .....
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
ممنون
فعلا اونقدر مهم نیست که تمام روز انلاین باشن
اینترانت هم اصلا به صرفه نیست
یه راه اینکه کامپوتر ها تمام مدت ان لاین باشن و بانکتون رو یه سرور mysql یا MS SQL بگیرید و تمام اطلاعات رو اونجا ذخیره کنید به ایین ترتیب همه به از یه بانک و یه جور اطلاعات استفاده می کنن
چطور میشه این کارو کرد؟
میشه به دیتا بیس روی وب وصل شد؟
یه خورده راهنمایی میکنی؟
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
ببینید اولا این دیتا بیس رو ی وب نیست
بلکه مصل یه دیتا بیس معمولی روی شبکه می مونن بهرتین وسیله برای وصل شدن به اونها هم استفاده از کامپوننت های dbExpress هست که مخصوص همین کار طراحی شدن کار با هاشون اسونه فکر کنم اگه یکم ور برید یاد می گیرید زیاد با دیتا بیس ها معمولی فرق نداره فقط با یک کانکشن بسازید که کاموننت اون هم موجود داره و نوع بانک رو مشخص کنید بعد می تونید از بیقه دیتا بیس ها استفاده کنید
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
سلام بعد از مدتها
در راستاي سوال قبلي (كه از يه روش ديگه انجامش دادم) حالا يه برنامه ميخوام بنويسم تحت شبكه كه چندتا سيستم با هم به يه ديتابيس وصل بشن خب؟
حالا ميخوام ببينم از همين راهي كه گفتي بايد برم و يه ديالوگ بزارم و فايل ديتابيس رو انتخاب كنه از رو شبكه
در كل اگه وقت كردي يه كم هم در مورد اين يه توضيح بيشتر بده
راستي چه طوري تست كنم برنامه رو روي سيستم خودم بدون شبكه؟
 

mojtabax

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
227
لایک‌ها
1
سن
38
محل سکونت
Shiraz
سلام،
آقا حالا که بحث شد چطور میشه به MySQL ارتباط برقرار کرد ...
خواهشا کامل توضیح بدین یا لینک بدین.

ممنون از لطف همه.
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
تا فردا صبر کنید یه اموزش کامل می زارم
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
ممنون آرش جان
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
برای شروع ابتدا از برگه dbExpress یک SQLConnection و یک SQLQuery بر روی فرم قرار می دیم
بر روی SQlConnection دابل کلیک می کنیم
در قسمت driver Name MySQL رو انتخاب می کنیم
21ovszb.jpg


بر روی mysqlConnect کلیک می کنیم در قسمت سمت چپ باید اطلاعات سرور مورد نظر رو بنویسم

در قسمت hostname باید نام یا IP سرور MySql رو نوشت در قسمت user name و پسورد هم اطلاعات رو و در قسمت database نام دیتا بیس
21ovtdh.jpg


بعد ok رو می زنیم در پنجره object inspector مقدار vendorLib رو باید ادرس فایل mysql.dll تنظیم کنید برای راحتی شما من این فایل رو پیوست می کنم

و مقدار Login prompt رو برار flase قرار بدید

21ovtwg.jpg


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


حاالا فرض کنید ما یک جدول به ساختار زیر داریم

tbluser` (
`ID` int(11) NOT NULL auto_increment,
`user` char(20) NOT NULL default '',
`pass` char(30) NOT NULL default '',
`email` char(50) NOT NULL default '',
PRIMARY KEY (`ID`)
)

21ovucn.jpg


بروی SQLQuery که بروی فرم قرار داده بودید کلیک کنید مقدار SQLConnection رو برابر کانکشنی که ساختید قرار بدید بعد بروی SQL کلیک کنید و در ویرایشگر دستور SQL رو بنویسید

SELECT * FROM `tbluser`

حالا چهار dbEdit یک Button و یک DataSource بروی فرم قرار بدید

21ovupu.jpg


مقدار DataSource ادیت ها رو برابر dataSource1 قرار بدید و مقدار dataSet رو برای DataSource1 برابر SQLQuery1 قرار بدید

و مقدار DataField رو تنظیم کنید
بروی Button دابل کلیک کنید این کد رو بنویسید

if not SQLQuery1.Eof then
SQLQuery1.Next;

حالا مقدار active رو برایSQLQuery برابر true قرار بدید

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

برای بقیه کارها هم شماباید دستورات SQL رو به سرور بفرسیتد این روش اتصال معایبی داره

1. فقط امکال حرکت رو به جلو در رکورد ها وجود داره
2. نمی تونید رکورد ها رو در یک dataGrid نمایش بدید

برای رفع این مشکلات می تونید از کامپوننت ها DAC که مجانی نیست استفاده کنید در هنگام کار با این کاموننت ها مثل بقیه کاموننت BDE می تونید با MySQL کار کنید البته سرعت و کارایی dbExpress از تمامی روش های مشابهبهتره

یه روش بسیار عالی دیگه MyODBC هست در این روش شما با نصب Driver ODBC برای MySQL که به MyODBC مشهوره به کمک ODBC به جداول MySQL دسترسی داشته باشید

یه روش دیگه هم هست که در اون باید از توابع Mysql API به صورت مستقیم استفاده کنید در این روش شما هیچ کامپوننتی ندارید و کار کردن باهاش برای برنامه های ویژوال زیاد جالب نیست چون نمی تونید از کنترل های داده ای استفاده کنید بیشتر به درد برنامه های کنسول یا یک ارتباط کوچیک و محدود مثلا کنترل نام کاربری می خوره

فایل های libmysql.dll
و mysql.pas که شامل API های موجود در libmysql هست رو پیوست می کنم
 

فایل های ضمیمه

  • libmySQL.dll.zip
    129.2 KB · نمایش ها: 46
  • mysql.pas-3.23.47.zip
    9.5 KB · نمایش ها: 31

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
ممنون
ميشه ايو واسه اكسز هم استفاده كرد؟
من بلد نيستم با ماي اس كيو ال كار كنم
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
دیتا بیس های access که روی شبکه نیستن کار کردن با هاشون هم اینقدر درد سر نداره خیلی راحت با ADO می تونید بهشون دسترسی پیدا کنید ولی هر کامپوتر برای خودش اگه قرار از یه دیتا بیس مشترک استفاده کنید باید یکی از اینها رو انتخاب کنید


MySQL
SQL Server
Inter Base
البته دیتا بیس ها تحت شبکه ی دیگه هم هستند ولی اینها معروف ترینشون هستن
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
يعني چند تا سيستم با هم نمي تونن به يه اكسز وصل بشن؟
در مورد ماي اس كيو ال كجا ميشه ياد گرفت؟
هيچي ازش نمي دونم.
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
اکسس یه نوع پایگاه داده شبکه ای نیست باید برای هر کامیپوتر یه فایل اکسس درست کرد که بهم ربطی هم نخواهند داشت اگه منظور شما این باشه خب اصلا به دیتا بیس ها رو شبکه نیاز ندارید

در مورد mysql هم اگه با زبان SQL آشنا باشید با خوندن منوال خیلی راحت می تونید با همه چی اشنا بشید mysql از SQL استاندارد استفاده می کنه اگه هم با SQL آشنای ندارید یک کتاب در مورد Mysql بگیرید و بخونید
 

mojtabax

کاربر تازه وارد
تاریخ عضویت
20 جولای 2005
نوشته‌ها
227
لایک‌ها
1
سن
38
محل سکونت
Shiraz
به نقل از Arash_j13 :
برای شروع ابتدا از برگه dbExpress یک SQLConnection و یک SQLQuery بر روی فرم قرار می دیم
بر روی SQlConnection دابل کلیک می کنیم
در قسمت driver Name MySQL رو انتخاب می کنیم
21ovszb.jpg


بر روی mysqlConnect کلیک می کنیم در قسمت سمت چپ باید اطلاعات سرور مورد نظر رو بنویسم

در قسمت hostname باید نام یا IP سرور MySql رو نوشت در قسمت user name و پسورد هم اطلاعات رو و در قسمت database نام دیتا بیس
21ovtdh.jpg


بعد ok رو می زنیم در پنجره object inspector مقدار vendorLib رو باید ادرس فایل mysql.dll تنظیم کنید برای راحتی شما من این فایل رو پیوست می کنم

و مقدار Login prompt رو برار flase قرار بدید

21ovtwg.jpg


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


حاالا فرض کنید ما یک جدول به ساختار زیر داریم

tbluser` (
`ID` int(11) NOT NULL auto_increment,
`user` char(20) NOT NULL default '',
`pass` char(30) NOT NULL default '',
`email` char(50) NOT NULL default '',
PRIMARY KEY (`ID`)
)

21ovucn.jpg


بروی SQLQuery که بروی فرم قرار داده بودید کلیک کنید مقدار SQLConnection رو برابر کانکشنی که ساختید قرار بدید بعد بروی SQL کلیک کنید و در ویرایشگر دستور SQL رو بنویسید

SELECT * FROM `tbluser`

حالا چهار dbEdit یک Button و یک DataSource بروی فرم قرار بدید

21ovupu.jpg


مقدار DataSource ادیت ها رو برابر dataSource1 قرار بدید و مقدار dataSet رو برای DataSource1 برابر SQLQuery1 قرار بدید

و مقدار DataField رو تنظیم کنید
بروی Button دابل کلیک کنید این کد رو بنویسید

if not SQLQuery1.Eof then
SQLQuery1.Next;

حالا مقدار active رو برایSQLQuery برابر true قرار بدید

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

برای بقیه کارها هم شماباید دستورات SQL رو به سرور بفرسیتد این روش اتصال معایبی داره

1. فقط امکال حرکت رو به جلو در رکورد ها وجود داره
2. نمی تونید رکورد ها رو در یک dataGrid نمایش بدید

برای رفع این مشکلات می تونید از کامپوننت ها DAC که مجانی نیست استفاده کنید در هنگام کار با این کاموننت ها مثل بقیه کاموننت BDE می تونید با MySQL کار کنید البته سرعت و کارایی dbExpress از تمامی روش های مشابهبهتره

یه روش بسیار عالی دیگه MyODBC هست در این روش شما با نصب Driver ODBC برای MySQL که به MyODBC مشهوره به کمک ODBC به جداول MySQL دسترسی داشته باشید

یه روش دیگه هم هست که در اون باید از توابع Mysql API به صورت مستقیم استفاده کنید در این روش شما هیچ کامپوننتی ندارید و کار کردن باهاش برای برنامه های ویژوال زیاد جالب نیست چون نمی تونید از کنترل های داده ای استفاده کنید بیشتر به درد برنامه های کنسول یا یک ارتباط کوچیک و محدود مثلا کنترل نام کاربری می خوره

فایل های libmysql.dll
و mysql.pas که شامل API های موجود در libmysql هست رو پیوست می کنم

سلام،
آقا یک دنیا ممنون خیلی لطف کردید ...
ان شاء ا... بتونیم جبران کنم.:happy:
موفق باشید.
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
به نقل از Arash_j13 :
اکسس یه نوع پایگاه داده شبکه ای نیست باید برای هر کامیپوتر یه فایل اکسس درست کرد که بهم ربطی هم نخواهند داشت اگه منظور شما این باشه خب اصلا به دیتا بیس ها رو شبکه نیاز ندارید

در مورد mysql هم اگه با زبان SQL آشنا باشید با خوندن منوال خیلی راحت می تونید با همه چی اشنا بشید mysql از SQL استاندارد استفاده می کنه اگه هم با SQL آشنای ندارید یک کتاب در مورد Mysql بگیرید و بخونید
بيشتر تو نصبش و شروعش مشكل دارم
دستوراتش مثل تو php هست ديگه
يه راهنمايي واسه نصبش ميدي؟
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
از اینجا می تونید نسخه ویندوز اینستالر رو دانلود کنید که موقع نصب تمام سوالات لازم رو می پرسه و هیچ مشکلی پیش نمی یاد
http://mysql.com/downloads/mysql/5.0.html

توایع API دقیقا هم نام با توابع php هست

دستورات ُSQL هم همچنین
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
ممنون
خيلي خيلي زياد
 
بالا