delphi4arab منتديات دلفي للعرب

نسخة كاملة : البحث عن كلمة في قاعدة بيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
سلام الله عليكم

كيفي البحث عن كلمة وسط قاعدة بيانات بإحدى الحالتين:

1- كلمة في حقل
2- كلمة في الجدول

و جزاكم الله كل خير
الان على حسب خبرتي البسيطه في دلفي

انت بتستخدم مكون sql يعني يتعامل مع ال SQL او تعليمات لغة قواعد البيانات

ومن هذا نستنتج أن اللغه التي يجب ان تستخدمها في هذا الاستعلام هي لغة ال SQL

لذالك شيك على هذا الموقع وان شاء الله يفيدونك الشباب أكثر Smile

كود :
http://www.w3schools.com/sql/default.asp

=============

ملاحظه كلامي يحتمل الخطأ لاني مبتدأ في الدلفي واجبت عليك بحسب ما افهمه Smile
السلام عليكم

الكود التالي يبحث عن كلمة أو نص داخل كل الحقول في كل جداول قاعدة البيانات.
ويضع ناتج البحث (الجدول و رقم التسجيلة و الحقل) في ListBox


كود :
procedure TForm1.Button1Click(Sender: TObject); var Con: TAdoConnection; lstTables: TStringList; T, F, R: integer; ds: TADODataSet; DatabaseName: string; sTableName: string; sFind: string; begin DatabaseName := 'C:\trash\test.mdb'; sFind := Edit1.Text; Screen.Cursor := crHourGlass; lstTables := TStringList.Create; Con := TAdoConnection.Create(nil); ds := TADODataSet.Create(nil); try Con.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;'+ 'Data Source=' + DatabaseName + ';' + 'Persist Security Info=true'; Con.Connected := true; Con.GetTableNames(lstTables, false); ds.Connection := Con; ListBox1.Items.BeginUpdate; ListBox1.Clear; for T := 0 to lstTables.Count - 1 do begin sTableName := lstTables[T]; ds.Close; ds.CommandText := 'SELECT * FROM ' + sTableName; ds.Open; R := 0; while not ds.Eof do begin for f := 0 to ds.FieldCount -1 do begin if Pos(sFind, ds.Fields[f].AsString) > 0 then ListBox1.Items.Add(sTableName + ' - ' + IntToStr(R) + ' - ' + ds.Fields[f].FieldName + ' - ' + ds.Fields[f].AsString); end; ds.Next; R := R + 1; end; end; ListBox1.Items.EndUpdate; finally lstTables.Free; ds.Free; Con.Free; end; Screen.Cursor := crDefault; end;
السلام عليكم جميعا
أخي شقروني هل يصلح هذا الكود مع قاعدة البيانات أكسس وما هي التعديلات اللازمة.
مشكور
السلام عليكم

إقتباس :أخي شقروني هل يصلح هذا الكود مع قاعدة البيانات أكسس وما هي التعديلات اللازمة.

الكود أصلا خاص بقاعدة بيانات اكسيس.

بالنسبة لباقي أنواع قواعد البيانات فالفكرة نفسها يمكن تطبيقها.

استخدام الدالة Pos للبحث أسرع بكثير من استخدام جمل Sql مثل Like. خاصة مع حقول المذكرة في قواعد بيانات ضخمة.
مشكور يا أخي سأجرب وإذا واجهتني مشكلة فسأعود إليك
السلام عليكم
تعديل بسيط على كود اخي Shagrouni

تعطيل نافذة Login Prompt بنسبة لاكسس
اضافة
Con.LoginPrompt:=false;