PDA

View Full Version : آپگرید اطلاعات اصلی یک پروژه از طریق فایل خروجی اکسس



mahdisam
شنبه 04 آذر 1396, 20:32 عصر
با سلام
فرض کنید دوتا جدول با فیلد های یکسان داریم و از یک جدول در نرم افزار اصلی استفاده میکنیم و جدول بعدی با همان فیلد در جای دیگر با اطلاعات جدید موجود می باشد .. چطور میتوانم کدی بنویسم که اطلاعات فیلد جدید از فایل بیرونی را به فایل و اطلاعات نرم افزار اصلی اضافه کنم ..البته اطلاعات جدید به نرم افزارم انتقال داده بشه و به اطلاعات قبلی اضافه بشه ...
به نوعی میشه گفت آپگرید فیلد های یه جدول اکسس به اکسس دیگه ...
خواهشاً کدش رو بنویسید .. ممنون میشم ..
!!!!!!!! انتقات اطلاعات جدولی به جدول دیگر با فیلد های یکسان !!!!!!

hp1361
سه شنبه 07 آذر 1396, 11:39 صبح
با سلام
فرض کنید دوتا جدول با فیلد های یکسان داریم و از یک جدول در نرم افزار اصلی استفاده میکنیم و جدول بعدی با همان فیلد در جای دیگر با اطلاعات جدید موجود می باشد .. چطور میتوانم کدی بنویسم که اطلاعات فیلد جدید از فایل بیرونی را به فایل و اطلاعات نرم افزار اصلی اضافه کنم ..البته اطلاعات جدید به نرم افزارم انتقال داده بشه و به اطلاعات قبلی اضافه بشه ...
به نوعی میشه گفت آپگرید فیلد های یه جدول اکسس به اکسس دیگه ...
خواهشاً کدش رو بنویسید .. ممنون میشم ..
!!!!!!!! انتقات اطلاعات جدولی به جدول دیگر با فیلد های یکسان !!!!!!

سلام

به همان شکلی که اطلاعات در جدول اصلی شما وجود داره و خواندن و نوشتن رو انجام میدید، یک کانکشن و کوئری دیگه هم برای بانک دوم ایجاد کنید و با یه حلقه از اولی بخونید و توی دومی بریزید

موفق باشیم

mahdisam
سه شنبه 07 آذر 1396, 20:09 عصر
ممنون از پاسختون .. خواهشاً اگه برای شما ممکنه یه سورس ساده یا کد مربوطه رو بگذارید تا انجامش بدم ..ممنون میشم .. خیلی بهش نیازمندم ..خدا خیرتون بده ..

hp1361
شنبه 11 آذر 1396, 10:47 صبح
ممنون از پاسختون .. خواهشاً اگه برای شما ممکنه یه سورس ساده یا کد مربوطه رو بگذارید تا انجامش بدم ..ممنون میشم .. خیلی بهش نیازمندم ..خدا خیرتون بده ..

سلام

در کد زیر، با یک حلقه، اطلاعات از جدول اول خوانده شده و به جدول دوم ریخته میشه. فرض بر اینه که فایل دیتابیس جداول مجزاست


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
FDConnection2.Open();

FDConnection1.Open();
FDQuery1.Close;
FDQuery1.SQL.Clear;
FDQuery1.SQL := 'SELECT * FROM YourTableName';
FDQuery1.Open();
while not FDQuery1.Eof do
begin
FDQuery2.Close;
FDQuery2.SQL.Clear;
FDQuery2.SQL := 'INSERT INTO YourTableName VALUES(:Param,:Param2,:Param3';
FDQuery2.ParamByName('Param1').AsString := FDQuery1.FieldByName('FieldName1').AsString;
FDQuery2.ParamByName('Param2').AsString := FDQuery1.FieldByName('FieldName2').AsString;
FDQuery2.ParamByName('Param3').AsString := FDQuery1.FieldByName('FieldName3').AsString;
FDQuery2.ExecSQL;
Next
end;
end;


Param1,Param2,Param3 متغیر هستند که در درون حلقه مقادیر رو میگیرن. در صورتیکه تعداد فیلد های جدول بیشتر یا کمتر باشه، میتونید تعدادشون رو(با فرض نام یگانه) تغییر بدید.
FieldName هم که نام فیلد جدول شما هستند و باید دقیقا همون نامی باشند که در جدول دارند.
YourTableName هم نام جدول شماست که به نام واقعیش تغییر بدید.

موفق باشیم

mahdisam
شنبه 11 آذر 1396, 19:22 عصر
سلام

در کد زیر، با یک حلقه، اطلاعات از جدول اول خوانده شده و به جدول دوم ریخته میشه. فرض بر اینه که فایل دیتابیس جداول مجزاست


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
FDConnection2.Open();

FDConnection1.Open();
FDQuery1.Close;
FDQuery1.SQL.Clear;
FDQuery1.SQL := 'SELECT * FROM YourTableName';
FDQuery1.Open();
while not FDQuery1.Eof do
begin
FDQuery2.Close;
FDQuery2.SQL.Clear;
FDQuery2.SQL := 'INSERT INTO YourTableName VALUES(:Param,:Param2,:Param3';
FDQuery2.ParamByName('Param1').AsString := FDQuery1.FieldByName('FieldName1').AsString;
FDQuery2.ParamByName('Param2').AsString := FDQuery1.FieldByName('FieldName2').AsString;
FDQuery2.ParamByName('Param3').AsString := FDQuery1.FieldByName('FieldName3').AsString;
FDQuery2.ExecSQL;
Next
end;
end;


Param1,Param2,Param3 متغیر هستند که در درون حلقه مقادیر رو میگیرن. در صورتیکه تعداد فیلد های جدول بیشتر یا کمتر باشه، میتونید تعدادشون رو(با فرض نام یگانه) تغییر بدید.
FieldName هم که نام فیلد جدول شما هستند و باید دقیقا همون نامی باشند که در جدول دارند.
YourTableName هم نام جدول شماست که به نام واقعیش تغییر بدید.

موفق باشید


من اگه دیتابیسم اکسسه میتونم از این شیوه استفاده کنم ؟

hp1361
یک شنبه 12 آذر 1396, 10:43 صبح
من اگه دیتابیسم اکسسه میتونم از این شیوه استفاده کنم ؟

سلام

بله. میتونید. محدودیتی ندارید.

فقط با توجه به بانکتون باید درایور های مربوطه رو روی فرم یا دیتاماژول(جایی که این کدها رو قرار میدید) بزارید.

مثلا برای اکسس کامپوننت FDPhysMSAccessDriverLink رو باید بر روی فرم قرار بدید.

در ضمن بطور کلی FDGUIxWaitCursor هم فراموش نشه.

موفق باشیم

mahdisam
دوشنبه 13 آذر 1396, 23:02 عصر
میشه یه نمونه کوچیک از این پروژه رو بگذارید ؟

mahdisam
دوشنبه 13 آذر 1396, 23:04 عصر
سلام

بله. میتونید. محدودیتی ندارید.

فقط با توجه به بانکتون باید درایور های مربوطه رو روی فرم یا دیتاماژول(جایی که این کدها رو قرار میدید) بزارید.

مثلا برای اکسس کامپوننت FDPhysMSAccessDriverLink رو باید بر روی فرم قرار بدید.

در ضمن بطور کلی FDGUIxWaitCursor هم فراموش نشه.

موفق باشیم
کامپوننت فوق رو هم لینک کنید ..