البحث عن كلمة في قاعدة بيانات
#1
سلام الله عليكم

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

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

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

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

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

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

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

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

ملاحظه كلامي يحتمل الخطأ لاني مبتدأ في الدلفي واجبت عليك بحسب ما افهمه Smile
الرد
#3
استخدم LIKE
والبحث في المنتدى:
http://www.delphi4arab.net/forum/showthread.php?tid=998
http://www.delphi4arab.net/forum/showthr...p?tid=1625
http://www.delphi4arab.net/forum/showthr...p?tid=2926
هناك أمثلة كثيرة...
الرد
#4
السلام عليكم

الكود التالي يبحث عن كلمة أو نص داخل كل الحقول في كل جداول قاعدة البيانات.
ويضع ناتج البحث (الجدول و رقم التسجيلة و الحقل) في 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;
الرد
#5
السلام عليكم جميعا
أخي شقروني هل يصلح هذا الكود مع قاعدة البيانات أكسس وما هي التعديلات اللازمة.
مشكور
الرد
#6
السلام عليكم

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

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

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

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

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


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


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