PDA

View Full Version : آموزش: پایگاه داده



hasandrw
دوشنبه 13 تیر 1390, 00:07 صبح
با سلام
چجوری میتونم برای پایگاه داده حلقه for بنویسم
مثلا بخوام از اولین رکورد تا آخرین رکورد حلقه for بنویسم.
ممنون

akar_program
دوشنبه 13 تیر 1390, 00:41 صبح
میتوانید از
RecordCount ایستفاده‌ كنید

برای میسال
var
i:Integer;
begin
for I := 1 to ADOTable1.RecordCount do
ShowMessage(inttostr(i));

end;

BORHAN TEC
دوشنبه 13 تیر 1390, 07:56 صبح
procedure TForm1.Button1Click(Sender: TObject);
begin
if not ClientDataSet1.Eof then
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
try
ClientDataSet1.Edit;
try
ClientDataSet1.Fields[0].Value :=
UpperCase(ClientDataSet1.Fields[0].Value);
ClientDataSet1.Post;
except
// record cannot be posted. Cancel;
ClientDataSet1.Cancel;
end;
except
// record cannot be edited. Skip
end;
ClientDataSet1.Next;
end; // while
end;

hasandrw
دوشنبه 13 تیر 1390, 11:19 صبح
ممنون از راهنمایی تون
try,exceptیعنی چی؟

BORHAN TEC
دوشنبه 13 تیر 1390, 12:18 عصر
try,exceptیعنی چی؟
برای مدیریت استثناء به کار می رود. اگه جستجو کنید مطالب زیادی را در این رابطه پیدا خواهید کرد.

hasandrw
دوشنبه 13 تیر 1390, 13:14 عصر
من هرکاری می کنم حلقه اجرا نمیشه
اگه لطف کنین مشکم کنین ممنون میشم.
من میخوام این دستورات تو حلقه برام اجرا بشه
dm.ADOQuery1.Edit;
DM.ADOQuery1.FieldValues['tedad']:=inttostr((strtoint(DM.ADOQuery1.Fields.FieldByNa me('tedad').Value))-(strtoint(dm.ADOQuerykharid.Fields.FieldByName('te dad').Value)));
dm.ADOQuery1.Post;
یعنی از اولین رکورد تا آخرین رکورد این عمل برام تکرار بشه
ممنونم

Vahid.Shatery
دوشنبه 13 تیر 1390, 17:55 عصر
کد را در بین تگ قرار بدین تا واضح باشه .
ضمنا شما نتیجه تفریق را کجا می خواین نشون بدین .
آیا نتیجه تفزیق هر رکورد را می خواین در فیلد روبروی خودش نمایش بدین ؟

hasandrw
دوشنبه 13 تیر 1390, 18:53 عصر
//dm.ADOQuery1.Edit;
//DM.ADOQuery1.FieldValues['tedad']:=inttostr((strtoint(DM.ADOQuery1.Fields.FieldByNa me('tedad').Value))-(strtoint(dm.ADOQuerykharid.Fields.FieldByName('te dad').Value)));
//dm.ADOQuery1.Post;
من دو تا جدول دارم یکی رو با Adoquery1 و جدول دیگری رو ADOQuerykharid ارتباط برقرار کرده ام.
و می خوام ADOQuerykharid رو از ADOQuery1 کم کنم و نتیجه رو در ADOQuery1 ذخیره کنم.
ADOQuery1=ADOQuery1-ADOQuerykharid

Vahid.Shatery
دوشنبه 13 تیر 1390, 19:32 عصر
و می خوام ADOQuerykharid رو از ADOQuery1 کم کنم
اخه qry که مقدار نیست که شما می خواین از هم کم کنید.
دقیقا پروژه را توضیح بدین تا راحت تر بشه راهنمائیتون کرد .

hasandrw
دوشنبه 13 تیر 1390, 21:29 عصر
ببین مهندس :
من این قطعه کد که نوشتم برای یک رکورد کار میکنه اما من میخوام برای چند رکورد که همزمان این کارانجام بشه باید از حلقه استفاده کنم که متاسفانه تو دستور حلقه گیر کردم.شما فقط شکل کلی حلقه که از اولین رکورد تا آخرین رکورد(یعنی تا هرچی رکورد باشه) این کار رو برام تکرار کنه بنویسید.

Vahid.Shatery
دوشنبه 13 تیر 1390, 21:40 عصر
procedure TfrmRegHW.btn2Click(Sender: TObject);
var i, j, a, iFrom ,iTo : double ;
begin
iFrom := StrToFloat(edHWSerialFrom.Text) ;
iTo := StrToFloat(edNumber.Text) ;


if fmUserMsg.Show(' ÓÎÊ ÇÝÒÇÑ ËÈÊ ÎæÇåÏ . ÇÏÇãå ãí ÏåíÏ ¿', 'ËÈÊ ÓÎÊ ÇÝÒÇÑ', 1) = 3 then
begin
fmpleasewait.show ;
with MainComponent.tblHWGoods do
begin
j := 1 ;
while j <= iTo do
begin
کد مورد نظر;
j := j + 1 ;
// iFrom := iFrom + 1 ;
end ;
end ;
fmpleasewait.Close;
fmUserMsg.Show('ÚãáíÇÊ ÊåíÉ áíÓÊ ÈÇ ãæÝÞíÊ ÇíÇä íÇÝÊ . ', 'ÊÇÆíÏ', 2);


end;
end;

Vahid.Shatery
دوشنبه 13 تیر 1390, 21:42 عصر
ضمنا شما اگه داخل کدی که نوشتین در ردیف آخر کد زیر را اضافه کنید مشکل حل می شه .

i := i + 1 ;