PDA

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



Mask
سه شنبه 09 فروردین 1390, 16:00 عصر
با سلام.
دستور زیر رو ملاحظه بفرمایید.

ComboBox1.Items.Assign(Memo1.Lines);
حالا چطوری مقدار یه فیلد از بانک رو بریزم درون این ComboBox . یعنی اینطوری بشه...

ComboBox1.Items.Assign(ADOTable1.FieldByName('Name ').text);
ممنون.

M_Maskout
سه شنبه 09 فروردین 1390, 17:06 عصر
سلام
با این دستور:
ComboBox1.Items.Add(ADOTable1['Name']);

به Assign احتیاجی نیست.

Mask
سه شنبه 09 فروردین 1390, 18:05 عصر
ممنون.
تست کردم اما error داد.

---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EDatabaseError with message 'ADOTable1: Field 'year' not found'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

Vahid.Shatery
سه شنبه 09 فروردین 1390, 18:15 عصر
سلام
باید از DBComboBoxa استفاده کنی .
بعد این DBCombobox وصلش کنی به فیلدی که می خوای .
خیلی راحت تره .

M_Maskout
سه شنبه 09 فروردین 1390, 20:58 عصر
ممنون.
تست کردم اما error داد.

این مشکل از نبودن فیلد year تو جدول مورد نظر شماست، و اصل دستور قطعاً ایرادی نداره. مطمئن بشین که جدول رو قبلاً باز کردین (ADOTable1.Active := True).

Felony
سه شنبه 09 فروردین 1390, 22:24 عصر
سلام
با این دستور:
ComboBox1.Items.Add(ADOTable1['Name']);

به Assign احتیاجی نیست.
این کد اشتباه هست و فقط باید مقدار رکورد اول از فیلد مورد نظر رو به ComboBox اضافه کنه ، متد Add فقط یک پارامتر از نوع String میگیره پس نباید انتظار اضافه شدن اون فیلد Name همه رکوردها رو داشته باشید .

به صورت زیر میتونید این کار رو انجام بدید :
ADOTable1.First;
while not ADOTable1.Eof do
begin
ComboBox1.Items.Add(ADOTable1.FieldByName('Name'). AsString);
ADOTable1.Next;
end;

Mask
چهارشنبه 10 فروردین 1390, 00:20 صبح
این کد اشتباه هست و فقط باید مقدار رکورد اول از فیلد مورد نظر رو به ComboBox اضافه کنه ، متد Add فقط یک پارامتر از نوع String میگیره پس نباید انتظار اضافه شدن اون فیلد Name همه رکوردها رو داشته باشید .

به صورت زیر میتونید این کار رو انجام بدید :
ADOTable1.First;
while not ADOTable1.Eof do
begin
ComboBox1.Items.Add(ADOTable1.FieldByName('Name'). AsString);
ADOTable1.Next;
end;
در حال حاضر همین کار رو میکنم. میخاستم کد نویسیم کمتر بشه.

M_Maskout
چهارشنبه 10 فروردین 1390, 20:36 عصر
این کد اشتباه هست و فقط باید مقدار رکورد اول از فیلد مورد نظر رو به ComboBox اضافه کنه ، متد Add فقط یک پارامتر از نوع String میگیره پس نباید انتظار اضافه شدن اون فیلد Name همه رکوردها رو داشته باشید .

به صورت زیر میتونید این کار رو انجام بدید :
ADOTable1.First;
while not ADOTable1.Eof do
begin
ComboBox1.Items.Add(ADOTable1.FieldByName('Name'). AsString);
ADOTable1.Next;
end;

دوست عزیز؛
سطر 4 از کدی که شما نوشتید دقیقاً معادل همون چیزیه که من نوشتم هست، و کد اشتباه نیست. سوال درباره ریختن یه فیلد از یه جدول درون ComboBox هست؛ قطعاً برای ریختن فیلد مورد نظر از تمام رکوردها، دستورات بیشتری مورد نیاز هست که شما مرقوم فرمودین.
ضمناً در جمله شما اشتباه تایپی وجود داره که قاعدتاً باید به صورت زیر اصلاح بشه:
... و فقط باید [می‌تونه] مقدار رکورد [فیلد] اول از فیلد [رکورد] مورد نظر [جاری] رو به ComboBox اضافه کنه ...

Felony
پنج شنبه 11 فروردین 1390, 06:44 صبح
ر 4 از کدی که شما نوشتید دقیقاً معادل همون چیزیه که من نوشتم هست، و کد اشتباه نیست.
شما اگر درخواست کاربر رو ببینی متوجه میشی که کدتون در مورد سوال ایشون کاربردی نداره ، کد شما مقدار رکوردی که Cursor در حال حاظر روش قرار داره رو وارد ComboBox میکنه .


ضمناً در جمله شما اشتباه تایپی وجود داره که قاعدتاً باید به صورت زیر اصلاح بشه:
... و فقط باید [می‌تونه] مقدار رکورد [فیلد] اول از فیلد [رکورد] مورد نظر [جاری] رو به ComboBox اضافه کنه ...
اون باید رو برای این نوشتم که کدتون رو تست نکردم .
اون فیلد و رکورد هم درست هست مگر اینکه شما در درک معنای این دو از هم مشکل داشته باشید .
مورد نظر هم ، منظورم این بود رکوردی که الان کاربر انتخاب کرده و Cursor روش قرار گرفته .
در اینجا ایشون گفته یک فیلدی مد نظرشون هست و میخواد اطلاعات اون فیلد همه رکوردها رو وارد ComboBox کنه ، جمله بندی درست هست !

و در ضمن این ها اگر هم اشتباه بود ، اشتباه تایپی نبود !!!

M_Maskout
پنج شنبه 11 فروردین 1390, 07:39 صبح
اون فیلد و رکورد هم درست هست مگر اینکه شما در درک معنای این دو از هم مشکل داشته باشید .


:لبخند:
:چشمک:

Mask
یک شنبه 14 فروردین 1390, 11:28 صبح
سلام
باید از DBComboBoxa استفاده کنی .
بعد این DBCombobox وصلش کنی به فیلدی که می خوای .
خیلی راحت تره .
تو کدوم سر برگه؟

Vahid.Shatery
یک شنبه 14 فروردین 1390, 13:46 عصر
تو کدوم سر برگه؟
تو سر برگ Data Controls
موفق باشید.