PDA

View Full Version : بدست آوردن شماره رکورد جاری در یک query



mi_9469
یک شنبه 12 شهریور 1385, 09:15 صبح
با سلام

من یه query را اجرا کردم .میخوام شماره رکورد جاری را بدست بیار جواب همیشه 1- می دهد!



query1.close;
query1.sql.clear;
query1.sql.add('select * from table name');
query1.open



i:=query1.recno ;

keshtkar
یک شنبه 12 شهریور 1385, 17:04 عصر
با سلام
فکر کنم کد زیر مشکل شما رو حل میکنه


var
i,count:integer;

DataModule1.ADOTable1.First;
count:=0;
for i:=1 to DataModule1.ADOTable1.RecordCount do
if DataModule1.ADOTable1.FieldValues['name']<>Edit1.Text then
begin
count:=count+1;
DataModule1.ADOTable1.Next;
if DataModule1.ADOTable1.FieldValues['name']=Edit1.Text then
Break;
end;
edit2.Text:=inttostr(count);

در صورتی که اطلاعات شما بر اساس فیلد خاصی ثبت شده مثلا "کد" قبل از DataModule1.ADOTable1.First از یک دستور مرتب سازی استفاده کنید تا دقیقا همان چیزی که می خواهید به شما بدهد
مثال

DataModule1.ADOTable1.Sort:='Code ASC;'

Edit1 همان گزینه ایست که شما بر اساس آن سرچ کرده اید
امیدوارم مشکل سما را حل کند
موفق و سلامت باشید

mi_9469
دوشنبه 13 شهریور 1385, 09:02 صبح
با سلام
بسیار ممنون از جوابتون .
من این روش رو قبلا انجام دادهام ولی در مورد کاربرد recordcount , recno نتوانسته ام جواب بگیرم مثلا گاهی اوقان بعد از اجرای یک query ,دستور recordcount جواب 1- در صورتی که این query چندین رکورد را select کرده است .در مورد recno هم همین طور است.

saniak_robot
دوشنبه 13 شهریور 1385, 09:29 صبح
منظور از رکورد جاری چیه ؟
اگه منظورت اینه که همیشه تو query یه رکورد قرار می گیره می تونی به جدولت یه فیلد id از نوع identity اضافه کنی و شماره رکورد رو از اون فیلد بخونی .


موفق باشید .

keshtkar
دوشنبه 13 شهریور 1385, 10:47 صبح
در مورد recno نمی تونم چیزی بگم ولی recordcount تعداد رکوردهای شما را شمارش میکنه و من تا به حال با اون به هیچ مشکلی بر نخوردم
در ضمن راه حا دوست عزیزمون saniak_robot هم جالبه و هم بدون دردسره
موفق و سلامت باشید