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

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

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

المطلوب

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

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

2 إجابة

+2 تصويتات

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

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

 

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

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

وحظا طيبا laugh

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

يمكنك فقط بعد معرفة عدد الجداول .... القيام باللوب "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;

 

 

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

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

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

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

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

اسئلة متعلقة

+1 تصويت
1 إجابة
سُئل مايو 26 في تصنيف vcl بواسطة hidenpain (840 نقاط) | 25 مشاهدات
+4 تصويتات
2 إجابة
0 تصويتات
1 إجابة
سُئل ديسمبر 26، 2018 في تصنيف SQL بواسطة KHALED (7,490 نقاط) | 189 مشاهدات
+4 تصويتات
2 إجابة
سُئل أغسطس 11، 2018 في تصنيف vcl بواسطة KHALED (7,490 نقاط) | 64 مشاهدات
+4 تصويتات
1 إجابة
سُئل سبتمبر 21، 2018 في تصنيف SQL Server بواسطة Yamada Fakir (1,640 نقاط) | 149 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك
Comodo SSL

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

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

395 سؤال
633 إجابة
1,130 تعليق
237 مستخدم