ورود

View Full Version : سوال: ورود اطلاعات در dbgrid



soft-c
چهارشنبه 27 مرداد 1389, 14:27 عصر
سلام.
می خواستم وقتی اطلاعات در dbgrid یا همان پایگاه که dbgrid به آن وصل است insert شد همان وقت نشان بدهد .
چون نمی دانستم با چه موضوعی search کنم اینجا این مطلب را گذاشتم .
این کد را هم نوشتم ولی جواب نداد :
dbgrid1.refresh;
تشکر.

Delphi7_love
چهارشنبه 27 مرداد 1389, 15:05 عصر
سلام.
می خواستم وقتی اطلاعات در dbgrid یا همان پایگاه که dbgrid به آن وصل است insert شد همان وقت نشان بدهد .
چون نمی دانستم با چه موضوعی search کنم اینجا این مطلب را گذاشتم .
این کد را هم نوشتم ولی جواب نداد :
dbgrid1.refresh;
تشکر.

به چه روشی insert می کنید ؟

ADOQuery1.Insert;
ADOQuery1.FieldValues['id']:=edit2.Text;
ADOQuery1.Post;

این refresh میشه.

soft-c
چهارشنبه 27 مرداد 1389, 15:39 عصر
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Text :='insert into active values ('''+ edit1.text+''','''+edit2.Text+''','''+ComboBox3.Te xt+''','''+SolarDatePicker2.Text+''','''+ComboBox1 .Text+''','''+Edit3.Text+''','''+ComboBox2.Text+'' ','''+Edit5.Text+''','''+Edit6.Text+''','''+SolarD atePicker1.Text+''','''+Edit7.Text+''','''+Edit10. Text+''','''+Edit8.Text+''','''+edit11.Text+''','' '+edit12.Text+''') ';
ADOQuery1.ExecSQL ;
به روش بالا
ولی همین روش هم قبلا جواب می داد .
البته قبلا هنوز فیلدها را مشخص نکرده بودم.
ولی وقتی فیلدها را مشخص کردم این مشکل پیش آمد

حمیدرضاصادقیان
چهارشنبه 27 مرداد 1389, 15:57 عصر
سلام.شما وقتی دستور Execsql رو اجرا میکنید باید کوئری که به dbgrid وصل هست رو رفرش کنید.
مثال :


adoquery2.requery();

با این دستور کوئری که به dbgrid هست رو رفرش کنید بعد از دستور execsql .
اگر به همین adoquery1 وصله که باید از روش زیر استفاده کنید:


adoquery1.execsql;
بعد از این باید دستورات زیر رو بنویسید.
adoquery1.sql.clear;
adoquery1.sql.add('select * from active');
adoquery1.open;


موفق باشید

Delphi7_love
چهارشنبه 27 مرداد 1389, 16:35 عصر
میتونید بعد از اینکه insert کردید دستور زر رو بنویسید

adotable1.Close;
adotable1.Active:=true;