easyDelphi Q&A
+4 تصويتات
53 مشاهدات
سُئل في تصنيف Database بواسطة (820 نقاط) | 53 مشاهدات
 

1 إجابة واحدة

+2 تصويتات
أفضل إجابة

هناك حلين أحدهما لا يحتاج إلى أن تبرمج القاعدة ثم جداولها أثناء التشغيل ...

  • الحل الأول :

أن تقوم بعمل نسخة عن القاعدة بجداولها وهي فارغة و تقوم بحملها ضمن الرسورس الخاص بالبرنامج و تخرجها إلى المسار الذي تريد وقتما تشاء...

ملاحظة: هذا الحل يعمل فقط إذا ما كانت القاعدة و الجداول ثابتة الأسم و البنية ...

كما أنه بالأمكان أيضا عمل نسخة فارغة في أحد المسارات بجوار البرنامج و عمل عليها كوبي وقت الحاجة ...

  • الحل الثاني :

أولا : إنشاء قاعدة فارعة : ليس يالأمر الصعب و لا يتطلب منك الأمر تسطيب مايكروسفت آكسس"MS-Access " في الجهاز حتى تعمل ذلك ... 

ثانيا : بعد  إنشاء قاعدة بيانات فارغة يمكنك بكل بساطة إنشاء الجداول بواسطة فقط أوامر "SQL"  ....

 إنشاء قاعدة فارعة:

uses comobj, sysutils;

function CreateAccessDatabase(FileName: string): string;
var
  cat: OLEVariant;
begin
  result := '';
  try
    cat := CreateOleObject('ADOX.Catalog');
    cat.create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + Filename + ';');
    cat := NULL;
  except
    on e: Exception do
      result := e.message;
  end;
end;

 إنشاء الجداول:

 

function Creat_Tabele(AConnection: TADoConnect): Boolean;
var
  ADOQuery: TADOQuery;
begin
  Result := false;

  ADOQuery := TADOQuery.Create(nil);
  with ADOQuery do
  try
    if Active then Close;
    Connection := AConnection;
    Sql.Clear;
    Sql.Add('Create Table TPerson'); 
    Sql.Add('(ID_Person AutoIncrement,Name_Prson Text(25),FirstName_Prson Text(25),Birth_Date DateTime,Birth_Place  Text(30),Age Number)'); 	
    try
      ExecSQL;
	  Result := True;
    except
      Result := False;
    end;

  finally
    ADOQuery.Close;
    ADOQuery.Free;
  end;
end;

ربما سأوافيك بمثال فيمابعد ...

ملاحظة : يجب إختيار المسار الذي لا يتطلب صلاحيات المدير .... أو تشغيل البرنامج بصلاحيات المدير ....

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

تم الرد عليه بواسطة (13,990 نقاط)
مختارة بواسطة
شكرا صديقي على المساعدة.

اسئلة متعلقة

+3 تصويتات
2 إجابة
سُئل أغسطس 2 في تصنيف Database بواسطة َAbdallah (2,080 نقاط) | 67 مشاهدات
0 تصويتات
1 إجابة
سُئل نوفمبر 27 في تصنيف vcl بواسطة MohammedAmine (330 نقاط) | 20 مشاهدات
+4 تصويتات
1 إجابة
سُئل يوليو 25 في تصنيف Database بواسطة sofiane DRT (310 نقاط) | 60 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك

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

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

280 سؤال
486 إجابة
866 تعليق
175 مستخدم