EasyDelphi Q&A
+3 تصويتات
123 مشاهدات

السلام عليكم ورحمة الله تعالى وبركاته

اليكم تعليمة اسكيال للاستعلام عن أسماء الجداول في الاكسس 

المطلوب

تعديل على التعليمة لجلب ايضا عدد السجلات لكل جدول

سُئل في تصنيف SQL بواسطة (990 نقاط) | 123 مشاهدات

2 إجابة

+2 تصويتات

بشكل عام اذا لم تستعمل Group By فلا يمكن عمل تعداد او متوسط او مجموع لحقل ما، يعني، علي ان تختار حقل للتجميعه Group و عندها اضف بعد ال Selcect عملية Count(*)

select count(*) , myfield where myid=1
group by myfield

 

تم الرد عليه بواسطة (15,150 نقاط)
0
شكرا على التوضيح أخي طلبت إضافة التعليمية السابقة لجلب أسماء الجداول في القاعدة وكذلك جلب عدد السجلات لكل جدول
+2 تصويتات
ADOConnection1.GetTableNames(ListBox2.Items, False);

الرابط من هنا .

وحظا طيبا laugh

تم الرد عليه بواسطة (19,960 نقاط)
0
أخي شكرا لك على الاضافة
هذا الكود لجلب أسماء الجداول في القاعدة
في كود السابق المرفق تعليمةاسكيال  لجلب أسماء الجداول
 أنا أريد جلب عدد السجلات لكل جدول في القاعدة
0

يمكنك فقط بعد معرفة عدد الجداول .... القيام باللوب "for" مع إستعمال خاصية "ADOQuery1.RecordCount" 

procedure TFrmMain.Btn_GetRecodCountForEachTableClick(Sender: TObject);
var
  I: Integer;
  List: TStringList;
  AdoQuery: TADOQuery;
begin
  List := TStringList.Create;
  AdoQuery := TADOQuery.Create(nil);
  AdoQuery.Connection := ADOCon_MyData;
  ADOCon_MyData.GetTableNames(List, False);
   for I:= 0 to List.Count -1 do
   begin
     with AdoQuery do
     begin
       Close;
       SQL.Clear;
       SQL.Add('select * from ' + List[I]); Open;
      // SQL.Add('do your Needed Query here'); ExecSQL;
       LstBox_TablesNames.Items.Add(List[I] + ' ==> ' + RecordCount.ToString);
     end;
   end;
   List.Free;
   AdoQuery.Free;
end;

 

 

0
السلام عليكم أخي عند التنفيذ يظهر خطأ هنا
ListBox1.Items.Add(List[I] + ' ==> '  RecordCount.ToString);
لكن عند حذف الكود الخاص بجلب عدد السجلات لكل جدول تظهر أسماء الجداول فقط
ListBox1.Items.Add(List[I] + ' ==> ' );
0
تم حل المشكلة بتغيير القيمة الرقمية الى قيمة نصية
ListBox1.Items.Add(List[I] + ' ==> '+ IntToStr(RecordCount));
0

ما هي نسخة الدلفي عندك ؟ إذا ماكانت النسخة أقل من النسخة Xe4 فلابد لك من إستعمال الفانكشن "IntToStr" عوضا عن الهالبر "ToString" 

بمعنى عليك إستبدال الهالبر "ToString" بالفانكشن  "IntToStr" كمايلي :

LstBox_TablesNames.Items.Add(List[I] + ' ==> ' + IntToStr(RecordCount));

الرايط من هنا .

اسئلة متعلقة

+1 تصويت
1 إجابة
سُئل مايو 26 في تصنيف vcl بواسطة hidenpain (1,220 نقاط) | 28 مشاهدات
+4 تصويتات
2 إجابة
0 تصويتات
1 إجابة
سُئل ديسمبر 26، 2018 في تصنيف SQL بواسطة KHALED (7,610 نقاط) | 287 مشاهدات
+4 تصويتات
2 إجابة
سُئل أغسطس 11، 2018 في تصنيف vcl بواسطة KHALED (7,610 نقاط) | 72 مشاهدات
+4 تصويتات
1 إجابة
سُئل سبتمبر 21، 2018 في تصنيف SQL Server بواسطة Yamada Fakir (1,690 نقاط) | 170 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك
Comodo SSL

مرحبًا بك إلى EasyDelphi Q&A، حيث يمكنك طرح الأسئلة والحصول على الإجابة عليها من المستخدمين الآخرين.

لا يسمح بطلب او السؤال عن كراك او تفعيل او كسر او فك او اي شيء يخالف اتفاقيات الترخيص  مهما كان السبب ومهما كان البرنامج ونوعه. ولا حتى نشر روابط تحتوي على مثل هذه الاشياء لا في الاسئلة ولا في الاجابات ولا التعليقات . نهائيا

440 سؤال
673 إجابة
1,216 تعليق
256 مستخدم