الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع قواعد البيانات

بدأه زكيري عبد العالي في 14 أغسطس 2007 · 9 رد · 3,831 مشاهدة · في Delphi .NET/PRISM
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الربط ب access

  Unit : permettant d'interagir avec une base de données MS Access.
  <!-- Auteur  :  Zekiri abdelali  -->
	<!-- Version :  1.0			  -->
	<!-- Date	:  13/08/2007	   -->
  <!-- Group   : IACP INFORMATIQUE -->
}
unit AccessBDManager;
interface
uses System.Data.OleDb,System.Data;

function Get_ConnectionString : string;
function Get_Provider : string;
function  State : System.Data.ConnectionState;
procedure AccessBDOpen(BDPath : string );
function ExecuteRequest(SQLRequest : string) : Integer;
function ExecuteSelectRequest(SQLRequest : string) :OleDbDataReader  ;
procedure CloseReader();
procedure Free();

var
	/// Connexion à la base de données.
		connection : OleDbConnection;
	/// DataReader interne.
		reader	 : OleDbDataReader;
   ///  requête OLE
		command  : OleDbCommand;
implementation
//________________Obtient la chaîne de connexion à la base de données. _________

	function Get_ConnectionString : string;
	begin
				if connection <> nil then
			Result := connection.ConnectionString
				else
			Result := '';
	end;
//______________/// Obtient le fournisseur d'accès à la base de données. _______
			   /// <example>Microsoft Jet OLEDB</example>

	function Get_Provider : string;
	begin
				if connection <> nil then
					Result := connection.Provider
				else
					  Result := '';
   end;
//_____________________ Obtient le statut de la connexion. _____________________

   function  State : System.Data.ConnectionState;
   begin
				if connection <> nil  then
					  Result := connection.State
				else
					  Result := System.Data.ConnectionState.Closed;
  end;
//_______	Ouvre une connexion sans mot de passe à une base de données. _________
  procedure AccessBDOpen(BDPath : string );
  begin
			connection := OleDbConnection.Create('PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=' + BDPath);
			// Ouvre la connexion.
			try
		  connection.Open();
	  Except on E: Exception do
		Console.WriteLine(E.Message)
	  end;
  end;
{___________Exécute une requête de type "non-query" sur la base de donnée
		 <param name="SQLRequest">La requête SQL.</param>
		 <returns>Le nombre de lignes affectées par la requête.</returns>
		 <exception cref="BDManager.BDManagerException"></exception>_______________}

	function ExecuteRequest(SQLRequest : string) : Integer;
  begin
			if (connection <> nil) and (connection.State = System.Data.ConnectionState.Open) then
	  begin
				  if (reader = nil)then
		  begin
			  command := OleDbCommand.Create(SQLRequest, connection);
						try
				  Result:= command.ExecuteNonQuery();
			  Except on E: Exception do
				  Console.WriteLine(E.Message)
			  end;
		  end
		  else
						Console.WriteLine('Impossible d''exécuter la requête car le DataReader de la requête précédente est demeuré ouvert.');
	  end
		  else
		  Console.WriteLine('Impossible d''exécuter la requête car la connexion est fermée.');
  end;
{___________Eécute une requête de type "SELECT" sur la base de données.
	 <param name="SQLRequest">La requête SQL</param>
	 <returns>Un DataReader pointant sur le jeu de résultats de la requête.</returns>
	 <exception cref="BDManager.BDManagerException"></exception>_________________}

   function ExecuteSelectRequest(SQLRequest : string) :OleDbDataReader  ;
		begin
			  if (connection <> nil) and (connection.State = System.Data.ConnectionState.Open) then
		begin
					if (reader = nil) then
				begin
						  command := OleDbCommand.create(SQLRequest, connection);
						  try
								reader := command.ExecuteReader();
				Except on E: Exception do
					Console.WriteLine(E.Message)
				end;
			   Result:= reader;
			end
			else
							  Console.WriteLine('Impossible d''exécuter la requête car le DataReader de la requête précédente est demeuré ouvert.');
		end
			 else
						Console.WriteLine('Impossible d''exécuter la requête car la connexion est fermée.');
   end;
{_____Ferme le DataReader interne afin de pouvoir exécuter une nouvelle
							  requête sur la même connexion.___________________}
		procedure CloseReader();
	begin
				if (connection <> nil) and (connection.State = System.Data.ConnectionState.Open) then
		  begin
					  if (reader <> nil) then
			  begin // Ferme le DataReader.
							try
								  reader.Close();
					Except on E: Exception do
						Console.WriteLine(E.Message)
					end;
			  end
				else
							  Console.WriteLine('Impossible de fermer le DataReader car celui-ci l''est déjà.');
		  end
		  else
					  Console.WriteLine('Impossible de fermer le DataReader car la connexion est fermée.');
	end;
//________________ Ferme la connexion à la base de données._____________________
		procedure Free();
	begin
				if (connection <> nil) and (connection.State = System.Data.ConnectionState.Open) then
		  begin	// Ferme la connexion.
						 try
							   if (reader <> nil) and (reader.IsClosed) then
								  CloseReader();
							  connection.Close();
							  connection := nil;
				Except on E: Exception do
					Console.WriteLine(E.Message)
				end;
		  end
				else
					  Console.WriteLine('Impossible de fermer la connexion car celle-ci l''est déjà.');
	end;
end.
#2
اقتباس
merci bien mon frere c tres gentil de ta part

شكرا اخي عمل جيد

ارجوا الكتابة باللغة العربية

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 12 سبتمبر 2008 في 11:07

image-27.gif

concepteur realisateur java j2ee

php5 and asp

#3

السلام عليكم

هذه الكلاس عملتها على winform في الدلفي 2006 وهي بالطلع تشتغل على webform

شكرا على المشارك ننتضر منك المزيد اخي man4maya

#5

السلام عليكم

بالطبع لقد كتبته عندما كمنت مبتدأ اي في الايام الاولي هناك كلاس احسن من هذا كتبتها في دروس الاسبي ارجوا مراجعتها

شكرا

#6

أخى زكيرى

أنا قمت بعمل مشروع جديد وحطيت المكونات دى

لكن لم اكتب الكود السابق لانى ميش فاهمة وربطت الاداة بقاعة البيانات ونجح الأتصال

عايز بقى ابرمج زر Login بحيث يقوم بالبحث على اسم المستخدم ورقمة السرى ويظهر رسالة "تمام مثلاً"

اعمل ايه فى الزر دة بقى ؟

مرفق الصورة لما تم

مبتدئ Aspx

post-87900-1228608175_thumb.jpg

تم تعديل هذه المشاركة بواسطة Swift في 7 ديسمبر 2008 في 03:02

Comming Soon

#7

بســم الله الـرحمــن الرحيــم

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

اسف على الاطالت والله ان جد مشغول هذه الايام ولااجد الوقت لكن اعد ان ارد يوم العطلت السبت المقبل واضع مثال مع استخدام السيشن

لكن انصحك بستعمال دلفي 2006 لان ليس جيد في الواب وينقصه اكثير

2007 or

او انتضر الجديد مثلي :cash:

prism

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 10 ديسمبر 2008 في 11:42

#8

شكراً اخى زكيرى

Comming Soon

#10

لقد ثبت دلفي VS 2008 prism ولم يشتغل المثال عليه

لاني عملت علي الدلفي 2007 --> (100%)

ساحال تصحيحه في اقرب وقت

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 15 ديسمبر 2008 في 15:59

مواضيع مشابهة