PDA

View Full Version : سوال: خطا در خواندن اطلاعات جدول



rkhabbazi
یک شنبه 28 آذر 1389, 19:34 عصر
سلام
من در برنامه خود از قطعه کد زیر استفاده می کنم برای خواندن مقادیر رکورد ها در یک فیلد خاص. در واقع مقادیر تمام رکورد ها را در یک فیلد خاص، به item های یک combobox اضافه می کنم.
Procedure ReadTelBook(combo:TComboBox;FName:string);
var
i:SmallInt;
begin
NullStrictConvert:=False;
DM1.Dataset.Close();
DM1.Dataset.CommandText:='SELECT :v1 FROM telbook;';
dm1.Dataset.Parameters.ParamByName('v1').Value:=FN ame;
DM1.Dataset.Open();
combo.Items.Clear;
for i:=1 to DM1.Dataset.RecordCount do
begin
if DM1.Dataset.FieldValues[FName]<>null then
combo.Items.Add(DM1.Dataset.FieldValues[FName]);
DM1.Dataset.RecNo:=DM1.Dataset.RecNo+1;
end;
NullStrictConvert:=True;
end;
اما هنگام اجرا پیغام خطای زیر را نمایش میده:
Dataset:Field 'co' not found.
بعنوان مثال یکی از فیلد ها بنام co که هنگام خواندن رکورد های این فیلد، این پیغام خطا رو برای فیلد های دیگر هم نمایش می دهد. نکته مهم اینه که اگر بجای یک Procedure برای هر فیلد از Procedure جداگانه ای استفاده کنم، و پارامتر Fname را حذف کنم، هیچ مشکلی پیش نمیاد.
لطفا منو راهنمایی کنید.
خدانگهدار

vcldeveloper
یک شنبه 28 آذر 1389, 22:36 عصر
علتش اینه که دارید نام فیلدها در دستور SELECT رو با استفاده از پارامتر SQL میدید، در حالی که پارامترهای SQL را نمی تونید برای نام فیلدها یا جداول در دستورات SQL استفاده کنید. به جای اون دستور SELECT باید بنویسید:


'SELECT ' + FName + ' FROM telbook';

javad_gol
یک شنبه 06 شهریور 1390, 18:21 عصر
من این کد زیر رو نوشتم و جواب هم گرفتم یعنی اطلاعات رو از فیلد خاصی تو دیتاست خوندم


da.Fill(ds, "t_reg")
Dim d1, d2 As DateTime
d1 = ds.Tables("t_reg").Rows(0).Item("fdatestart")
d2 = ds.Tables("t_reg").Rows(0).Item("fdateend")
TextBox1.Text = d1.ToString
TextBox2.Text = d2.ToString




البته تبدیل و مقادیر و نوع ها رو خودتون یاتون باشه