PDA

View Full Version : یه مشکل در استفاده از Param در ADOQuery



Mahdi_S_T
سه شنبه 23 آبان 1385, 23:11 عصر
من میخوام یه فیلتر بین دو تاریخ انجام بدم و براساس کد زیر کار میکنه و کد زیر هم داخل یه دکمه است . دفعه اول که دکمه را کلیک میکنم درست کار میکنه ولی اگر برای بار دوم دکمه رو کلیک کنم خطای زیر ظاهر میشه . مشکل کجاست ؟


Data type mismatch in criteria expression




with AdoQuery do begin
Close;
Parameters.ParamByName('date_first').Value:=sh_in. Date;
Parameters.ParamByName('date_last').Value:=sh_out. Date;
SQL[2]:='WHERE Tarikh_Andi Between :date_in and :date_out';
Open;
end;

ghabil
سه شنبه 23 آبان 1385, 23:30 عصر
این کدی که من میبینم که اسم پارامتر Date_Frist هست یک جا بعد تو commandText گذاشتی Date_IN!
ولی اون مشکلی که میگی یک خط هم بزار :


Parameters.ParamByName('date_first').DataType := ftDateTime

ببین درست میشه .

Mahdi_S_T
چهارشنبه 24 آبان 1385, 13:51 عصر
ببخشید در تایپ اشتباه شده کد رو تصحیح می کنم


with AdoQuery do begin
Close;
Parameters.ParamByName('date_first').Value:=sh_in. Date;
Parameters.ParamByName('date_last').Value:=sh_out. Date;
SQL[2]:='WHERE Tarikh_Andi Between :date_First and :date_Last';
Open;
end;

Mahdi_S_T
چهارشنبه 24 آبان 1385, 14:49 عصر
دوست عزیز من کد شما رو اضافه کردم و درست شد .ممنون

Mahdi_S_T
دوشنبه 28 خرداد 1386, 19:14 عصر
اما همین کار رو برای کدی با تغییرات زیر که انجام میدم دیگه جواب نمیده .ظاهرا وقتی clear میشه (TParameters) که با کلیک روی ADoQuery و خاصیت Parameters اضافه کردم پاک میشه حالا چطوری توسط کد نویسی اینکار رو انجام بدم که Parameters رو بشناسه


with AdoQuery do begin
Close;
Sql.clear;
Parameters.ParamByName('date_first').DataType := ftDateTime
Parameters.ParamByName('date_first').Value:=sh_in. Date;
Parameters.ParamByName('date_Last').DataType := ftDateTime
Parameters.ParamByName('date_last').Value:=sh_out. Date;
SQL.add('Select * From SendMail WHERE Tarikh_Andi Between :date_First and :date_Last');
Open;
end;

vcldeveloper
سه شنبه 29 خرداد 1386, 08:21 صبح
باید با استفاده از متد CreateParam مربوط به Parameters پارامترهای مورد نظر خودت رو بوجود بیاری.

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

Mahdi_S_T
سه شنبه 29 خرداد 1386, 16:43 عصر
استاد کشاورز من این رو تست کردم ولی جواب نمیده !؟
دوستان روش دیگری رو پیشنهاد نمی کنند ؟