![]() |
|
قاعدة البيانات والملفات - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : قاعدة البيانات والملفات (/showthread.php?tid=1641) الصفحات:
1
2
|
قاعدة البيانات والملفات - kachwahed - 14-02-2010 إقتباس :هناك جداول يجب افراغها / حذف جميع السجلاتمممممممم... واضحة خبرة طويلة مع هذا النوع من البرامج ![]() ممكن تطلعنا على أحد الإصدارات (نسخة Demo أو صورة) ؟ لا تقل أنها بالـ TP7 على DOS :rtfm3: قاعدة البيانات والملفات - محمد عبد العزيز - 14-02-2010 إقتباس : واضحة خبرة طويلة...لا تقل أنها بالـ tp7tp6 من له خبرة لاينسخ قاعدة قد يكون حجمها ضخم ثم يحذف دون ضغط بل ينشئ قاعدة جديدة برمجيا ثم ينسج فقط ما يحتاجه من بيانات ويترك القديمة تنام بسبات قاعدة البيانات والملفات - FALY - 17-04-2010 السلام عليكم و رحمة الله الان بعد انشاء قاعدة البيانات الخاصة بكل سنةو انشاء الجداول الخاصة بها بالكود التالي كود : procedure TForm1.button1Click(Sender: TObject);
var
i:Integer;
DataSource: String;
DbName:String;
CS:String;
begin
i:=YearOf(Date());
if not FileExists('d:\'+IntToStr(i)+'Données.mdb') then
begin
DbName:='d:\'+IntToStr(i)+'Données.mdb';
DataSource :='Provider=Microsoft.Jet.OLEDB.4.0' +';Data Source=' + dbName +';Jet OLEDB:Engine Type=5';
ADOXCatalog1.Create1(DataSource);
ADOConnection1.ConnectionString:=DataSource;
ADOConnection1.LoginPrompt:=False;
ADOCommand1.Connection:=ADOConnection1;
cs:='CREATE TABLE '+IntToStr(i)+'Articles ('+'N°Ordre COUNTER,'+'Article TEXT(15))';
DataModule1.ADOCommand1.CommandText := cs;
DataModule1.ADOCommand1.Execute;
ADOConnection1.Close;
Close;
end
else
begin
ADOConnection1.Close;
while FileExists('d:\'+IntToStr(i)+'Données.mdb') do
Inc(i);
Copy(IntToStr(i)+'Données',5,4);
DbName:= 'd:\'+IntToStr(i)+'Données.mdb';
DataSource :='Provider=Microsoft.Jet.OLEDB.4.0' +';Data Source=' + dbName +';Jet OLEDB:Engine Type=5';
ADOXCatalog1.Create1(DataSource);
DataSource:='Provider = Microsoft.Jet.OLEDB.4.0 '+'; Data Source = d:\'+IntToStr(i)+'Données.mdb' +'; Persist Security Info = False';
ADOConnection1.ConnectionString:=DataSource;
ADOConnection1.LoginPrompt:=False;
ADOCommand1.Connection:=ADOConnection1;
cs:='CREATE TABLE '+IntToStr(i)+'Articles ('+'N°Ordre COUNTER,'+'Article TEXT(15))';
DataModule1.ADOCommand1.CommandText := cs;
DataModule1.ADOCommand1.Execute;
ADOConnection1.Close;
Close;
END;
end.لذا قررنا تعبئتها كما يلي كود : cs:='Insert into '+IntToStr(i)+'Articles (N°Ordre,Article) select N°Ordre,Article from '+IntToStr(i-1)+'Données.'+IntToStr(i-1)+'Articles';
DataModule1.ADOCommand1.CommandText := cs;
DataModule1.ADOCommand1.Execute;كيف لنا ان نجعل القاعدتين IntToStr(i-1)+'Données و IntToStr(i)+'Données معروفتين بالنسبة للمحرك وهل من طريقة لانشاء جدول في قاعدة من قاعدة اخرى ببياناته وشكرا قاعدة البيانات والملفات - FALY - 22-04-2010 السلام عليكم و رحمة الله كلما في الامر تشكيل قاعدة جديدة بالكود السلف الذكر ثم عمل copy كمايلي كود : procedure TForm1.button1Click(Sender: TObject);
var
i:Integer;
DataSource: String;
DbName:String;
CS:String;
begin
i:=YearOf(Date());
if not FileExists('d:\'+IntToStr(i)+'Données.mdb') then
begin
DbName:='d:\'+IntToStr(i)+'Données.mdb';
DataSource :='Provider=Microsoft.Jet.OLEDB.4.0' +';Data Source=' + dbName +';Jet OLEDB:Engine Type=5';
ADOXCatalog1.Create1(DataSource);
ADOConnection1.ConnectionString:=DataSource;
ADOConnection1.LoginPrompt:=False;
ADOCommand1.Connection:=ADOConnection1;
cs:='CREATE TABLE '+IntToStr(i)+'Articles ('+'N°Ordre COUNTER,'+'Article TEXT(15))';
DataModule1.ADOCommand1.CommandText := cs;
DataModule1.ADOCommand1.Execute;
ADOConnection1.Close;
Close;
end
else
begin
ADOConnection1.Close;
while FileExists('d:\'+IntToStr(i)+'Données.mdb') do
Inc(i);
Copy(IntToStr(i)+'Données',5,4);
DbName:= 'd:\'+IntToStr(i)+'Données.mdb';
DataSource :='Provider=Microsoft.Jet.OLEDB.4.0' +';Data Source=' + dbName +';Jet OLEDB:Engine Type=5';
ADOXCatalog1.Create1(DataSource);
DataSource:='Provider = Microsoft.Jet.OLEDB.4.0 '+'; Data Source = d:\'+IntToStr(i)+'Données.mdb' +'; Persist Security Info = False';
ADOConnection1.ConnectionString:=DataSource;
ADOConnection1.LoginPrompt:=False;
ADOCommand1.Connection:=ADOConnection1;
cs:='CREATE TABLE '+IntToStr(i)+'Articles ('+'N°Ordre COUNTER,'+'Article TEXT(15))';
DataModule1.ADOCommand1.CommandText := cs;
DataModule1.ADOCommand1.Execute;
ADOConnection1.Close;
Close;
END;ثم كود : CopyFile(PChar('D:\'+IntToStr(i-1)+'Données.mdb'),PChar('D:\'+IntToStr(i)+'Données.mdb'),False);وبهذا حلت المشكلة و شكرا .
قاعدة البيانات والملفات - palunix - 17-02-2011 هذه فعليا خطا. يمكن ان تصنع حل عن طريق تصميم قاعدة البيانات الغكره ان تقوم بعمل جدول اسمه السنوات. و تغلق كل سنه قديمه و تجعل السنة الجديده مفتوح التسجيل فيها و في هذه الحاله ,,, توجه كل العمليات تضيف فقط في السنة المفتوحة التسجيل و هكذا لا يلزمك ان نعمل ضبط مصنع او غيره قاعدة البيانات والملفات - وليد - 23-05-2011 السلام عليكم نعم أخي palunix لما لا ننشئ جدول امه السنواة أو سمه كما تشاء ونربط بقية الجداول التي لها علاقة بتغير السنوات بهذا الجدول وبهذ كلما تغيرت سنة أدخلناها في جدول السنوات ينتج لنا جداول جديدة وبهذا تبقى معنا قاعدة البيانات ببياناتها القديمة والجديدة إلى ما شاء الله ولك أن تضع تعليمات تحذف سجلات يمر عليها زمن معين كسجلات أنشئت قبل 6 أشهر أ سنة أو أكثر أو أقل هذا إن خفت على كبر حجم قاعدة البيانات . شكرا للجميع والسلام عليكم. RE: قاعدة البيانات والملفات - firebird78 - 30-01-2024 (23-05-2011, 06:19 PM)وليد كتب : السلام عليكم ممكن مثال بارك الله فيك |