PDA

View Full Version : ذخیره اطلاعات در بانک بوسیله دلفی



kh1387
پنج شنبه 28 آذر 1387, 13:23 عصر
با سلام
من تازه می خوام کارم رو با دلفی آغاز کنم.
اگه ممکنه یه کد ساده یا query برام بنویسید که بوسیله اون بتونم اطلاعاتی رو که در جعبه متن نوشتم به بانک Sql server 2005 منتقل کنم.
من با delphi 7 کار می کنم.
پیشاپیش از لطف دوستان سپاسگزارم.

kh1387
پنج شنبه 28 آذر 1387, 20:58 عصر
به اعضا بخش دلفی بر نخوره
ولی من در قسمت سی شارپ که کار می کردم، بچه ها خیلی فعالند ولی اینجا تا کنون کسی پیدا نشده راه رو به من نشون بده.
فکر نکنم سؤال سخت باشه.
خواهشا اگه کسی می دونه راهنمایی کنه، خیلی اضطراریه

vcldeveloper
پنج شنبه 28 آذر 1387, 23:22 عصر
اولین دلیلش میتونه این باشه که در #C شما بطور عادی فقط با ADO.Net سر و کار دارید، ولی در دلفی برای اتصال به SQL Server 2005 میشه از انواع و اقسام روش های اتصال مثل ADO, BDE, dbExpress و انواع کامپوننت های شرکت های دیگه مثل UniDAC, و SDAC استفاده کرد. وقتی مشخص نمی کنید با چی میخواید به SQL Server وصل شید، یکی باید حوصله کنه و راه اتصال به SQL Server را با همه اینها توضیح بده.

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

kh1387
جمعه 29 آذر 1387, 22:44 عصر
دومین دلیلش هم میتونه این باشه که این سوال در تالار دلفی بیش از حد تکراری هست، شما همینطوری بدون جستجو هم اگر دو سه صفحه از تالار بانک های اطلاعاتی در دلفی را مرور کنید، و برخی تاپیک هایشان را مطالعه کنید، به جواب سوالتان می رسید.
راستش من هرچی سرچ کردم و همونطوری که فرمودید انجام دادم به نتیجه ای نرسیدم.
حالا اگه ممکنه یکی از روشها که به شیوه سی شارپ نزدیکتره و راحتر هم باشه توضیح بدید یا لینکی بذارید.
متشکرم

kh1387
جمعه 29 آذر 1387, 23:19 عصر
من به بانک SQL Server 2005متصل شده ام و الان مشکلی ندارم.
فقط می خوام با یک دکمه ای که در صفحه دارم، وقتی کلیک می شه ، تمامی اطلاعات در جعبه متن رو در بانک ذخیره کنه.
اساتید راهنمایی کنند لطفا
اگه ممکنه کد برای query و روش ایجاد اون رو برام بنویسید.
خیلی خیلی متشکرم

vcldeveloper
جمعه 29 آذر 1387, 23:58 عصر
حالا اگه ممکنه یکی از روشها که به شیوه سی شارپ نزدیکتره و راحتر هم باشه توضیح بدید یا لینکی بذارید.
از ADO استفاده کنید. در آدرس زیر چند مثال از چگونگی کار کردن با آن وجود داره:
Demos\DelphiWin32\VCLWin32\ADO\مسیر نصب دلفی

در نسخه های قدیمی دلفی مثل دلفی 7:
Demos\ADO\مسیر نصب دلفی

kh1387
یک شنبه 01 دی 1387, 11:19 صبح
آقای کشاورز خیلی متشکرم از راهنمایی خوبتون
اما اگه ناراحت نمی شید، :خجالت:این مثال خیلی وسیع بود.
ببینید من طریقه کوئری نوشتن و اینها رو می دونم، فقط به من لطف کنید بگید مثلا من می خوام edit1.text رو در sql server 2005 ذخیهر کنم به عنوان یک فیلد.
و الان هم به بانک متصلم
حالا چه دستور و کوئری بنویسم
حتی اگر فقط ترتیبشون و الگوریتمشون رو بگید ممنونتونم.
باز هم از اینکه اینقدر سؤال ابتدای از شما می پرسم معذرت می خوام.

mafazel
یک شنبه 01 دی 1387, 12:01 عصر
سلام دوست عزیز
من با اجازه از آقای کشاورز (چون کارشون زیاده و سوالهای مهمتر رو جواب میدن) و شما، این سوال رو جواب میدم.
(شما تازه دلفی رو شروع کردید و مستقیم رفتید سراغ برنامه نویسی بانک اطلاعات، اونهم SQL Server ، بعدش هم ما نمیدونیم اطلاعات شما در چه حده و اگر توضیحاتی بدیم ممکنه یا تکراری باشه یا برای شما مفید نباشه. باید این پست آخر رو اول می زدید.)
همانطور که آقای کشاورز گفتند راههای مختلفی برای این کار وجود داره که یکی از ساده ترین اونها ADO هست.
ساده ترین راه درج یک مقدار در یک جدول بانک SQL Server به ترتیب زیره:
1- یک ADOConnection روی فرم بذارید و اونو به دیتابیس مورد نظر در SQl Server وصل کنید.
2- یک ADOTable روی فرم بذارید و مشخصه Connection اون رو روی ADOConnection1 و مشخصه TableName اون رو روی نام جدول مورد نظر تنظیم کنید.
3- جدول را باز کنید: ADOTable1.Open
3-برای درج در جدول دستورات زیر رو استفاده کنید:


ADOTable1.Insert;
ADOTable1.FieldByName('Name').AsString := Edit1.Text;
ADOTable1.FieldByName('Family').AsString := Edit2.Text;
ADOTable1.Post;

در حالت ساده نیازی هم به کوئری ندارید.
در حالت استفاده از کوئری بجای ADOTable یک ADOQuery میگذارید و شبیه همون عملیات Table رو می توانید با Query برای درج استفاده کنید.
اگر به استفاده از Query درج اصرار دارید کد های زیر را بنویسید.


ADOQuery1.Close;
ADOQuery1.SQL.Text := 'Insert Into Personnel (Name,Family) Values ('+Edit1.Text+','+Edit2.Text+')';
ADOQuery1.ExecSQL;

روش دیگه استفاده از Stored Procedure هست که یکم دنگ و فنگ داره.
برای دیدن داده های جدول در یک DBGrid هم که لابد مشکل ندارید.

kh1387
یک شنبه 01 دی 1387, 15:58 عصر
(شما تازه دلفی رو شروع کردید و مستقیم رفتید سراغ برنامه نویسی بانک اطلاعات، اونهم SQL Server ، بعدش هم ما نمیدونیم اطلاعات شما در چه حده و اگر توضیحاتی بدیم ممکنه یا تکراری باشه یا برای شما مفید نباشه. باید این پست آخر رو اول می زدید.)


دوست عزیزم
متشکر از پاسختون؛
من اطلاعاتم در مورد برنامه نویسی نسبتاً خوبه و تا حالا چندین تا برنامه کاربردی نوشته ام منتهی دوست دارم دلفی رو هم یاد بگیرم و از نظر برنامه نویسی مشکلی ندارم.
منتها سؤالی که پرسیدم به این دلیله که کار کردن با دلفی رو یاد دارم ولی نمی دونم اگر بخواهی با بانک اطلاعاتی کار کنیم چه کدها و دستورالعملهایی رو باید بنویسیم.
خیلی هم از پاسختان متشکرم

kh1387
یک شنبه 01 دی 1387, 16:12 عصر
mafazel جان واقعا ازتون متشکرم کارم راه افتاد.
حالا سؤالی که دارم می خوام اطلاعات رو بازیابی کنم.
اگه روش بازیابی اطلاعات رو هم بگید ممنون می شم.
خیلی خیلی متشکر

merced
یک شنبه 01 دی 1387, 21:38 عصر
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'Select * from table1 where ID = :p1';
ADOQuery1.Parameters[0].Value := IntToStr(Edit1.text) ;
ADOQuery1.Open; //OPEN

Edit2.Text := ADOQuery1.FieldByName('Name').AsString ;

vcldeveloper
دوشنبه 02 دی 1387, 00:17 صبح
علاوه بر توضیحات دوستان، اگر نمیخواید برای اینگونه کارهای ساده کد بنویسید، بجای کنترل Edit، از DBEdit استفاده کنید، وآن را به فیلد مورد نظرتان وصل کنید، خودش بطور خودکار متن فیلد مورد نظر برای رکورد جاری را نمایش میده.
برای حرکت روی رکوردها، یا اعمال ویرایش، و غیره هم یک DBNavigator روی فرم بیاندازید، و آن را به DataSource متصل به جدول خودتان وصل کنید.
اگر حوصله این کارها را هم ندارید، بعد از اینکه در IDE دلفی به بانک متصل شدید، روی جدول (مثلا AdoTable) دابل کلیک کنید تا پنجره Fields Editor باز شود، سپس روی این پنجره راست-کلیک کنید، و گزینه افزودن همه فیلدها را انتخاب کنید، تا همه فیلدهای جدول در این پنجره نمایش داده شود، سپس همه فیلدها را با موس انتخاب کرده، و روی فرم خودتان Drag کنید، تا دلفی خودش متناسب با نوع فیلدها، کنترل های بانک اطلاعاتی مناسب را بسازد. به این مجموعه یک DBNavigator هم برای حرکت روی رکوردها اضافه کنید، و برنامه را کامپایل کنید.