PDA

View Full Version : Sql And Delphi کمک فوری



Look in future
شنبه 19 اردیبهشت 1383, 15:04 عصر
سلام دوستان
در محیط دلفی من چنین دستوری نوشته ام
name:=module.adoquery1.sql.add('select name from name_family where name=:cod)module.adoquery1.parameters.paramvalues['cod']:=cxlookupcombobox1.text
module.adoquery1.open
label1.caption:=name
برنامه با موفقیت اجرا می شود فقط بجای اینکه در Label.caption مقدار فیلد name را بنویسد
عدد 0 را می دهد.
دوستان به من بگویید مشکل کجاست

arshia_
شنبه 19 اردیبهشت 1383, 19:22 عصر
فیلد نام چه نوعی است؟؟؟؟ عددی یا رشته ای؟؟؟
از تابع inttostr کمک بگیر....

سار
شنبه 19 اردیبهشت 1383, 23:06 عصر
name:=module.adoquery1.sql.add('select name from name_family where name=:cod)



تو Name چی ذخیره میشه؟
نوع Name چی هست؟
اصلا تو Label قرار چی نشون بده؟
فکر میکنم شما با این کار دارید حاصل درست یا نادرست اجرا شدن دستور رو تو Name ذخیره میکنید!!!

رضا عربلو
شنبه 19 اردیبهشت 1383, 23:24 عصر
فکر میکنم به جای
module.adoquery1.parameters.paramvalues['cod']:=cxlookupcombobox1.text

بایستی بنویسی
module.adoquery1.parameters.paramvalues['cod']:='' ''+cxlookupcombobox1.text+''''

Look in future
یک شنبه 20 اردیبهشت 1383, 14:44 عصر
دوست عزیز سلام
متغیر name از نوع string است و من می خواهم مقدار فیلد name را در متغیر نمایش دهم
آقا به ما تازه وازدها کمک کنید

رضا عربلو
دوشنبه 21 اردیبهشت 1383, 03:05 صبح
متغیر name از نوع string است و من می خواهم مقدار فیلد name را در متغیر نمایش دهم

جناب آقای آینده نگر
در ضورتی که متغیر شمh از نوع string باشذ در دستور WHERE بایستی مقدار آن داخل دو کاما باشد. برای مثال اگر در هنگام rintime مقدار پراپرتی query1.sql.text را بخواهی ببینی بایستی چیزی شبیه به 'علی' = WHERE name باشد، و از آنجا که در دلفی اما جزو گرامر آن می باشد برای نوشتن کاما در Editor بایستی'''' بنویسی. برای مثال در کد بایستی بنویسی
[code]''''علی''''=WHERE Name

Look in future
دوشنبه 21 اردیبهشت 1383, 13:19 عصر
دوست عزیز سلام
از اینکه به سوالهایم جواب می دهی سپاسگدارم شاید من منظورم را بد تعریف کرده باشم
نگاه کن من یک بانک دارم یکی از فیلدهای آن Name_familyد ویگری Code است حالا من می خواهم وقتی با دستور whereوselect مقدار code را دادم مقدار تغداد فیلدهایی را بدهد که با مقدار code برابر یاشند و این مقدار در یک متغیر ریخته شود.
با تشکر

rambod51
دوشنبه 21 اردیبهشت 1383, 14:03 عصر
name:=module.adoquery1.sql.add('select name as k from name_family where name=:cod)module.adoquery1.parameters.paramvalues['cod']:=cxlookupcombobox1.text
module.adoquery1.open
label1.caption:=k
با سلام
شما باید یک فیلد مجازی تعریف کنی تا بتوانی مقدار مورد نظر را از sql بیرون بفرستی (مثل k) که من تعریف کردم
select نام فیلد as( نام فیلد مجازی(متغیر from نام بانک
در ضمن نیاز نیست که متغیر را تعریف کنی بعد از انجام این مرحله می تونی مقدار بدست اومده را در دلفی استفاده کنی

Look in future
دوشنبه 21 اردیبهشت 1383, 15:54 عصر
سلام مجدد بابا نکاه کن منظورم این است
بانک من( NAme_personel) است وفیلدهای آن ( Name_family:varchar,code:int) است
در دلفی توسط cxlookupcombobox من کد را می گیرم آنگاه می بایست به من مشان دهد چه تعداد رکورد کدشان برابر با cxlookupcombobox است. بعیارت دیگر من مقدار آنرا می خواهم در یک edit نمایش دهد.
در محیط دلفی من چنین دستوری نوشته ام
var i:integer
i:=module.adoquery1.sql.add('select count(name_family) from name_personel where code=:ser)

module.adoquery1.parameters.paramvalues['ser']:=cxlookupcombobox1.text
module.adoquery1.open
edit1.text:=i;
مقدار i همیشه برابر با صفر است لطفا راهنمایی کنید

rambod51
دوشنبه 21 اردیبهشت 1383, 18:44 عصر
با سلام من در متن قسمت قبل به دلیل تمام شدن وقت اداری نتونستم متنو چک کنم ویه کد کم نوشتم الان اصلاحش می کنم
BEL1.CAPTION:=QURI1.SQL.FIELDVALUE (" FIELD NAME
که در بالا نام فیلد K می باشد
در ضمن برای شمارش تعداد فیلدها هم می تونی به این روش عمل کنی
من این کارو کردم و انجام شد
امیدوارم به دردت بخوره

رضا عربلو
دوشنبه 21 اردیبهشت 1383, 23:25 عصر
query یه پراپرتی داره به نام RecordCount که تعداد روردهایش را بز می گرداند

moradi_am
سه شنبه 22 اردیبهشت 1383, 10:22 صبح
اقای اینده نگر خوش امدید :flower:
اولا برای نوشتن دستورات آنها را داخل تگ cod که در بالای ارسال پاسخ وجود دارد استفاده کنید
ثانیا کد خود را بصورت زیر اصلاح کنید :

module.adoquery1.sql.clear;
module.adoquery1.sql.add('select name from name_family where name='+quotedstr(cxlookupcombobox1.text));
module.adoquery1.open
label1.caption:=module.adoquery1.FieldValues['name '];

Look in future
سه شنبه 22 اردیبهشت 1383, 14:00 عصر
دوست عزیز سلام
آقا دستتون درد نکنه درست کار کرد یک سوال دیگه داشتم مقدار فیلد در متغیر ریخته می شد
و حالا query من 3 تا فیلد یا چند تا فیلد پیدا کرده است برای اینکه تک تک این مقدار ها در یک متغیر یا آرایه ریخته شود چکار باید انجام داد . من یک حلقه گذاشتم و دستورتان را درون حلقه انجام دادم این دستور زمانی مقدار صحیح را بر می گرداند که یک query یک کقدار را پیدا می کرد
ولی وقتی چندتا را پیدا می کرد فقط آخرین فیلد را د رمتغیر می ریخت لطفا راهنمایی کنید

moradi_am
چهارشنبه 23 اردیبهشت 1383, 07:44 صبح
خواهش میکنم .با این کد مقادیر را در یک Listbox بریزید:

module.adoquery1.sql.clear;
module.adoquery1.sql.add('select name from name_family where name='+quotedstr(cxlookupcombobox1.text));
module.adoquery1.open ;
Listbox1.Items.Clear;
module.adoquery1.First ;
While not module.adoquery1.Eof do
begin
LIstbox1.Items.Add(module.adoquery1.FieldValues['n ame']);
module.adoquery1.Next;
end;