خطأ في إستعلام SQL
#1
السلام عليكم.: لدي مشكل في فقرة في بريمج من إستعلام لم أجد لها حل 
والغرض منه الفلترة في عدة أعمدة مرة في آن واحد
كود :
query1.SQL.Clear; query1.SQL.Add('select *'); query1.SQL.Add('from "e:\thpaie\f\Fi012004.DBF"'); query1.SQL.Add('where enf<>0 and corps=911'); datasource8.DataSet:=query1; يعطيني رسالة خطأ type mismatch in expression مع العلم كل أعمدة الفلترة float
الرد
#2
وعليكم السلام.
في التعليمة where اكتب مباشرة اسم الجدول و ليس مسار قاعدة
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 1 user says قال شكرا ل أبو معاذ على المشاركة المفيدة
  • benali137
الرد
#3
سلام عليكم
ضع اسم الجدول بدل مسار قاعدة البيانات
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
[-] كل من 1 user says قال شكرا ل Mr.DOS على المشاركة المفيدة
  • benali137
الرد
#4
وعليكم السلام وقع لي نفس الخطأ مع وضع الإمتداد أو بدونه
كود :
query1.SQL.Clear; query1.SQL.Add('select *'); query1.SQL.Add('from Fi012004.DBF'); query1.SQL.Add('where enf<>0 and corps=911'); datasource8.DataSet:=query1;
الرد
#5
السلام عليكم
الاخوة يقصدون ان تضح اسم الجدول الموجود في قاعدة البيانات وليس قاعدة البيانات نفسها
مثلا ليك قاعدة بيانات اسمها Fi012004.DBF هته القاعدة فيها جداول مثلا produits,fournissuers,Clients
بال query تستعلم select * from produits

اما ان كنت تبحث عن الاتصا بقاعدة البيانات فذلك شيئ اخر فقط اذكر مكونات الاتصال التي تسعملها
بالتوفيق
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
[-] كل من 1 user says قال شكرا ل mobile على المشاركة المفيدة
  • benali137
الرد
#6
(04-05-2018, 12:06 PM)mobile كتب : مثلا ليك قاعدة بيانات اسمها  Fi012004.DBF  هته القاعدة فيها جداول مثلا produits,fournissuers,Clients

السلام عليكم
DBF يعني قاعدة بيانات DBase اسم الملف هو نفسه اسم الجدول الوحيد
الاستعلام يكون من الشكل

كود :
query1.close; query1.SQL.Clear; query1.SQL.Add('select *'); query1.SQL.Add('from Fi012004'); query1.SQL.Add('where enf<>0 and corps=911'); query1.open;
فرضا البرنامج وملف dbf بنفس المكان والا يجب وضع المسار في الخاصية DataBaseName للمكون Query
انظهر نفس الخطأ فالامر متعلق نوع بيانات احد الحقلين في
Where
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
[-] كل من 1 user says قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • benali137
الرد
#7
السلام عليكم .
ألف شكر إخواتي على المساعدة لكن مازال عندي نفس الخطأ حتى بعد وضع كود أخي [size=small][size=medium][b]B.M.AbdelAziZ[/size][/size][/b][size=small]  يبقى نفس الخطأ لكن لاحظت ملاحظة بعد جعل الكود يفلتر في عمود واحد يعمل عادي الفلترة فهل هذا يعني أنه لايمكن أن أعمل فلترة في عمودين أو أكثر في وقت واحد[/size]
كود :
query1.close; query1.SQL.Clear; query1.SQL.Add('select *'); query1.SQL.Add('from Fi012004'); query1.SQL.Add('where enf<>0'); query1.open;

عمود واحد فقط وهو enf
أرجو المساعدة ربي يجازيكم
الرد
#8
جرب الحقل الثاني فقط، هل يظهر الخطأ ؟
كود :
query1.close; query1.SQL.Clear; query1.SQL.Add('select *'); query1.SQL.Add('from Fi012004'); query1.SQL.Add('where corps=911'); query1.open;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
[-] كل من 1 user says قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • benali137
الرد
#9
السلام عليكم : اخي عبد العزيز الكود الأخير شغال
الرد
#10
حسنا جرب هذا
كود :
query1.close; query1.SQL.Clear; query1.SQL.Add('select *'); query1.SQL.Add('from Fi012004'); query1.SQL.Add('where (enf<>0) and (corps=911)'); query1.open;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم