پرسش و پاسخ های رایج دیتابیس (FAQ Database)
سلام:5:
در این تاپیک سوال های رایج در مورد دیتابیس های دلفی قرار داده میشه
که دوستان سریع تر به موضوع مورد نظرشون برسن. من خودم
توی هر پست یک فرمان و خاصیتش رو میزارم. اگر چیزی
یادم رفته. لطفآ با پیغام خصوصی بهم اطلاع بدید. تا اضافه بشه.
فعلآ خداحافظ.
Sql چی هست؟ نیاز به نصب داره؟
سلام
ديتابيسي از نوع SQL وجود نداره .:41:
SQL با بانک اطلاعاتی Sql Server فرق میکنه. که پایین متوجه میشید.
یک زبان پرس و جو از دیتابیس هست و روی خیلی از دیتابیس ها جواب میده.
SQL زبانی که توسط بیشتر پایگاه داده ها Support میشه و زبانی برای کار
با پایگاه داده ها(Access و SQL Server و Oracle و ...) است و تقریبا هر کاری
میشه با پایگاه داده باهاش انجام داد مثل : انتخاب ، حذف ، ویرایش ، Backup و ....
برای اجرای دستورات SQL لازم نیست چیزی نصب بشه و برای استفاده ازش
کافیه که یاد گرفت ازش استفاده کرد.:20:
موفق باشید. خداحافظ
چطور دنبال یک رکورد در یک فیلد خواص بگردیم؟
سلام
برای اینکار دو راه وجود داره. اولی Locate هست و بعدی هم Filter
اولي ( Locate ) برای جستجو در بانک اطلاعاتی به کار می ره ...
دومی ( Filter ) برای نمایش رکوردهای خاصی در جدول به کار می رود ...
به یک نکته توجه داشته باشید که Locate فقط رکورد اول رو پیدا میکنه.
اما فیلتر قابلیت پیدا کردن چند رکورد رو داره و میتونید با دستور های خاصی
به رکورد های بعدی که پیدا کرده برید ...
اول فرمان Locate :
کد:
TAdoDataset1.Locate('Esme Field','kalamate kelidi ke search kone',[]);
حالا هم فرمان Filter
کد:
TAdoDataset1.Filtered := True;
TAdoDataset1.Filter := 'esme field'''+'kalamate kelidi ke mikhahi search koni''';
این هم برای فیلتر کردن بر اثاث نوشته های یک Edit.
کد:
TAdoDataset1.Filtered := True;
TAdoDataset1.Filter:= 'esme field='''+Edit1.Text+'''';
اگر چیزی یادم رفته با پیغام خصوصی بهم اطلاع بدید.:19:
موفق و سربلند باشید. :46:
چطور در لیست فیلتر شده حرکت کنیم؟
سلام
خوب دستور فیلتر رو یاد گرفتید. اما سوال اینه که وقتی
یک کلمه رو فیلتر کردیم و لیستی از رکورد ها انتخاب شد چطور در اون لیست حرکت کنیم؟
با این کدها میشه در لیست فیتلر شده حرکت کنید.
بعدی
کد:
AdoDataSet1.FindNext;
قبلی
کد:
AdoDataSet1.FindPrior;
اولی
کد:
AdoDataSet1.FindFirst;
آخری
کد:
AdoDataSet1.FindLast;
موفق باشید . بای
چطوری به یه رکورد جهش پیدا کنیم؟
سلام
خوب سوال خیلی ها هست که چطوری به یه رکورد جهش پیدا کنیم ؟
چند راه هست. که کد رو همراه توضیح نوشتم.:31:
رفتن به رکورد بعدی
رفتن به رکورد قبلی
رفتن به رکورد اول
رفتن به رکورد آخر
رفتن به تعداد دلخواه بعد
کد:
AdoDataSet1.MoveBy(تعداد);
توجه : برای رفتن به تعداد دلخواه قبل باید قبل از تعداد منفی "-" بزارید. این هم کد
رفتن به تعداد دلخواه قبل
کد:
AdoDataSet1.MoveBy(-تعداد);
فقط به جای "تعداد" عددی بزارید که قبل و بعد برید.:27:
همه این دستور ها برای جهش به رکورد در دیتابیس هستند و ربطی به لیست فیلتر هم نداره.
موفق باشید. خداحافظ:10:
Eof و Bof چی هستند؟ چطور جلوگیری کنیم؟
سلام
این هم چندمین پرسش و پاسخ امشب :18:
چرا وقتی رکورد اولی هستیم و دستور میدیم به رکورد قبلی بریم خطای BOF را میگیره ؟
و همچنین آخر باشیم و دستور رکورد بعدی رو بدیم خطای EOF را میگیره؟
خوب BOF مخفف Begin Of File هست ، یعنی در اول هستیم و قبلی وجود نداره
و همچنین EOF هم مخفف End of File هست و در آخر فایل دیتابیس قرار داریم و بعدی وجود نداره
توضیحات کامل تر و بیشتر رو از زبان دوستمان بشنویم.:46:
نقل قول:
سلام
EOF و BOF چیه؟
BOF یا (Begin Of File) اشاره گری که قبل از اولین رکورد قرار
می گیره و EOF یا (End Of File) اشاره گری که بعد از آخرین رکورد قرار
می گیره
یه مثال(رنگ آبی رکورد فعال)
BOF
رکورد 1
رکورد 2
رکورد 3
EOF
Table.First
BOF
رکورد 1
رکورد 2
رکورد 3
EOF
Table.Next
BOF
رکورد 1
رکورد 2
رکورد 3
EOF
Table.Next
BOF
رکورد 1
رکورد 2
رکورد 3
EOF
(اطلاعات رکورد 3 رو می ده)
Table.Next
BOF
رکورد 1
رکورد 2
رکورد 3
EOF
روي EOF قرار داره یعنی اطلاعات فایل به آخر
رسیده حالا اگه از FieldByNAme یا FieldValue
استفاده کنی پیغام خطا می ده
در مورد BOF هم دقیقا همین جوریه
چطور میتونیم از این خطاها جلوگیری کنیم؟
قبل از اینکه دستور قبل و بعد رو بدید اول Eof یا Bof را بررسی کنید
بستگی به حرکت داره که کدوم رو بررسی کنید. کد بررسی رو زیر گذاشتم.
یک نمونه برای بررسی Bof
کد:
if ADODataSet1.Bof = False then
این هم یک نمونه از بررسی Eof
کد:
if ADODataSet1.Eof = False then
یادتون نره بعد از بررسی باید دستور حرکت رو صادر کنید! (انگاری فرمانده لشکر شدید:21: )
موفق باشید. خداحافظ
چطور رکورد ایجاد کنیم؟ چطور اطلاعات رو استفاده و یا ویرایش کنیم
سلام
خوب این هم یک سوال رایج هست. که خیلی ها باهاش مشکل دارن.
چطور رکورد ایجاد کنیم؟ چطور اطلاعات رو استفاده و یا ویرایش کنیم؟
برای ایجاد رکورد کافیه از این فرمان استفاده کنیم. و یک رکورد خالی به آخر Table اضافه میشه
برای گرفتن و دادن اطلاعات هم اینطوری عمل کنید.
گرفتن
کد:
Caption := ADODataSet1.FieldValues['NameUser'];
دادن یا ویرایش کردم
کد:
ADODataSet1.FieldValues['NameUser'] := 'Soldier';
موفق باشید
ساختار دیتابیس چطوری هست؟
سلام
خوب این هم درد سر خیلی هاست. ساختار دیتابیس چطوریه؟
اینجا ها خیلی وقت ها اشتباه میشه. برای هیمن گفتم خوبه یه توضیح بدم.
اول دیتابیس که معلومه. بانک اطلاعاتی هست که ایجاد میشه و خالی هست.
توی دیتابیس جدول هایی به نام Table هست. که فیلد ها در اون قرار میگیره.
توی جدول ها فیلد هست. که پایین فیلد ها رکورد تعریف میشه.
حالا یک مثال کوچک بزنم. به عکس نگاه کنید.
حالا برای وصل شدن به این بخش ها دقت کنید از چه کمپننت هایی استفاده میشه.
برای دیتابیس. کمپننت هایی مثل AdoConnection و ...
برای جدول ها. کمپننت هایی مثل AdoDataSet , Table و ...
برای رابطه با فیلد ها و رکورد ها از فرمان ها استفاده میشه.
با اینکه خیلی ابتدایی توضیح دادم. میتونید توی
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
بیشتر آشنا بشید.
در کل امکانات خیلی فوق العاده ای داره که اگر استفاده نکردید نصف عمرتان بر فناست.
سوالی داشتید ، یا چیزی یادم رفته که بگم
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
بزنید.
روز آخر فعالیت.:13: دیگه باید ترک کنم.:2:
موفق باشید. خداحافظ
بهترین راهنما بقول دوستان Help دلفی
سلام مجدد
برای گرفتن لیست جداولی که در یک بانک اطلاعاتی از نوع Access قرار دارند میتوان از کد زیر استفاده کرد
[PHP]
adoconnection1.GetTableNames(listbox1.Items,false) ;
[/PHP]
فعلا بای
چگونه رکورد های دیتابیس را حذف کرد؟
سلام:20:
ببخشید مدت هاست که به این تاپیک ادامه ندادم.:11:
خوب برای خیلی ها این سوال پیش میاد! حتی خیلی ها دستورش رو پیدا میکنن اما باز هم مشکل دارن.
اما توی هلپ خود دلفی توضیح داده شده. حالا من هم یه توضیحی بدم به دوستانی که با حذف رکورد مشکل دارن.
قبل از این ما در مورد ف ی ل ت ر کردن دیتابیس آشنا شدیم و حتی انتخاب رکورد مورد نظر. خوب برای حذف آن
خیلی مشکل نداریم. فقط باید از دستور DeleteRecord استفاده کنیم.
اما این دستور تنهایی هیچ کاری نمیکنه. باید مشخص بشه که چه رکورد هایی رو حذف کنه!
توضیحات راهنمای دلفی
کد:
Option Meaning
arCurrent Only the deletes the current record.
arFiltered Only deletes records accessible through the current filter.
arAll Deletes all records in the recordset.
arAllChapters Deletes records in all chapters (ADO chapters)
توضیحات من در مورد Option های بالا
خوب اولی که arCurrent هست و فقط رکورد مشخص شده رو که روش هستیم رو حذف میکنه.
دومی هم arFiltered که فقط رکورد های از طریق ف ی ل ت ر بهشون دست یافتیم رو حذف میکنه
و سومی هم arAll که همه رکورد های تیبیل ( جدول ) رو حذف میکنه
و آخری هم که مربوط میشه به ADO chapters . که همه رکورد های ....
اما چطوری از اینها استفاده کنیم؟
با توجه به نیازمون یکی از این موارد رو انتخاب میکنیم و داخل پرانتز بعد از دستور مینویسیم.
برای مثال میخواهم از arAll استفاده کنم. و بعد از اجرای این دستور همه رکورد ها حذف میشن.
کد:
TAdoDataset1.DeleteRecord(arAll);
اما ممکنه بعد از اجرا خطا بده. برای اینکه مشکلی پیش نیاد قبل از این دستور باید دستور Edit که به معنی ویرایش هست رو بدید.
موفق باشید:5: