PDA

View Full Version : انتقال رکوردها از یک بانک به بانک دیگر



Microsoft
چهارشنبه 19 شهریور 1382, 17:06 عصر
با سلام

دوستان من چطوری میتونم توی برنامه ای که به واسطه ADO به بانک Access متصل شده ام رکوردها رو از Tableی به Table دیگر منتقل کنم ؟

با استفاده از BatchMove نمیشود .
با استفاده از Query چگونه میتوان این کار را انجام داد .

لیست فیلدها به قرار زیر است :


Sharh , Tedad , Fee , Jam , Faktor_no , Date , Eshterak_no

من تا به حال از Query , AdoQuery استفاده نکردم لطفا راهنمایی بفرمایید .

متشکرم .

چهارشنبه 19 شهریور 1382, 20:36 عصر
سلام
insert into table1 select * from table2
اگه یه جستجو میکردی اقای مشاطان قبلا اینو گفته بودن
راستی table1 جدول مقصد table2 جدول مبدا هست
راستی توی پروفایل سایت مایکروسافت روسایت شخصی خودتون معرفی کردین
اون سایت ماله شماس؟؟؟ :shock:

Microsoft
پنج شنبه 20 شهریور 1382, 12:47 عصر
از پاسخ شما سپاسگذارم . موطن آدمی تنها در قلب کسانیست که دوستش دارند .
سایت مایکروسافت دات کام متعلق به همه کسانیست که دوستش دارند .

موفق باشی .

Microsoft
جمعه 21 شهریور 1382, 00:15 صبح
آقا میلاد اگر بخوام فقط رکوردهای فیلتر شده رو کپی کنم چی ؟ ( یا در اصل بانک مقصد رو Update کنیم ) .

متشکرم .

جمعه 21 شهریور 1382, 14:32 عصر
اقای مایکروسافت!
اگه میخای یه سری رکوردهای خاص از جدول مبدا رو انتقال بدی باید فیلتر رو توی کوری اعمال کنی مثلا اینجوری

insert into table1 select * from table2 where table2.lastname like "%hoseini"
یا فیلتر رو روی adotable بزار و از این روش استفاده کن


for i:=1 to DataModule1.Query6.recordcount do
begin
table2.insert;
for j:=1 to DataModule1.Query6.FieldCount do
table2.Fields.Fields[index]:= DataModule1.Query6.Fields.Fields[index];
table2.post;
DataModule1.Query6.next;
end;

شفیعی
چهارشنبه 31 فروردین 1384, 20:25 عصر
سلام



insert into table1 select * from table2


برای انتقال اطلاعات از یک TABLE به TABLE دیگر TABLE دوم حتما باید قبلا ساخته شده باشد اگر با این روش به خواهیم یک TABLE جدید بسازیم باید چکار کرد

V60
چهارشنبه 31 فروردین 1384, 20:33 عصر
با دستور create table اون جدول را می سازیم و البته به صورتی که ابتدا توسط کد نویسی فیلدهای جدول اولی را پیدا می کنیم :موفق:

شفیعی
پنج شنبه 01 اردیبهشت 1384, 05:53 صبح
سلام
دوستان یک فایل اکسس داریم که درآن یک TABLE موجود هست در این TABLE یک فیلد به نام CITY داریم که نام شهرستانها در آن قرار دارد می خواهیم در برنامه قسمتی را طراحی کنیم که اطلاعات را براساس نام شهرستانها جدا کند مثلا بتوانیم اطلاعات یک شهرستان را لیست کرده و در فایل جدید دیگر ذخیره کنیم

V60
شنبه 03 اردیبهشت 1384, 00:39 صبح
فکر نمی کنم کار سختی باشه
البته یک مسئله هست
اینکه شما اصلا table جدید را از قبل دارید یا می خواهید آن را ابتدا ایجادکنید
اگر داشته باشید که با دستوراتی که جناب همکار سایت ( آقا میلاد) گفته اند خیلی راحته فقط باید از پارامتر درون query استفاده کنی
اگر جدول ساخته نشده ، مبحثش جداست
حالا کدام یکی است؟ :گیج:

شفیعی
شنبه 03 اردیبهشت 1384, 04:47 صبح
سلام
دوست عزیز مشکل اینجاست که باید هم فایل اکسس ساخته شود و هم TABLE داخل آن ساخته شود مانند چیزی که در BATCHMOVE وجود داشت خودش یک فایل جدید نیز می توانست بسازد

V60
شنبه 03 اردیبهشت 1384, 14:02 عصر
فکر نمی کنی بهترین راه حل این است که از ابتدا یک بانک خالی در برنامه ات برای اینکار داشته باشی
و هروقت می خواهی استفاده کنی یکی کپی از ان توسط کد نویسی بگیری و استفاده کنی؟

شفیعی
شنبه 03 اردیبهشت 1384, 20:16 عصر
سلام
دوست عزیز بعد از اینکه از فایل کپی گرفتم دستورات SQL را چطور بنویسم که بتوانم اطلاعات موجود در TABLE یک فایل را به TABLE یک فایل دیگر منتقل نمود

V60
شنبه 03 اردیبهشت 1384, 21:31 عصر
مگه خودت قبلا از آن نقل قولی که نوشته ای استفاده نکرده ای


insert into table1 select * from table2
البته من امتحان نکردم :mrgreen:

شفیعی
شنبه 03 اردیبهشت 1384, 23:32 عصر
سلام
این دو TABLE هر کدام در یک فایل MDB جدا هستند

V60
یک شنبه 04 اردیبهشت 1384, 15:04 عصر
راست می گی :embr:
حتما روش کار می کنم
البته من قبلا این مشکل را داشتم و مجبور شدم اون وقت فیلد به فیلد انتقال بدهم چون بلد نبودم
ولی دوباره دارم رویش کار می کنم

شفیعی
پنج شنبه 15 اردیبهشت 1384, 14:16 عصر
سلام
دوست عزیز هنوز مشکل حل نشده است

V60
جمعه 16 اردیبهشت 1384, 17:29 عصر
متاسفانه نه :embr:

شفیعی
پنج شنبه 29 اردیبهشت 1384, 00:01 صبح
سلام
کسی از دوستان راهی برای حل این مشکل ندارد

V60
جمعه 30 اردیبهشت 1384, 15:37 عصر
اقای شفیعی
من کمی بررسی کردم و به این کد رسیدم
شاید بتواند کمک کند
نمی دانم
[/code]ADOTable1.open;
ADOTable1.First;
while not (ADOTable1.Eof) do
begin
ADOTable2.Edit;
for i=0 to ADOTable2.IndexFieldCount do
begin
ADOTable2.IndexFields[i].AsString:=ADOTable1.IndexFields[i].AsString;
end;
ADOTable2.post;
end;
[code]
شاید با کمی تغییر در آن بتوانید به نیازتان برسید
لطفا بررسی کنید و جوابتان را بدهید
متشکر

V60
دوشنبه 09 خرداد 1384, 23:17 عصر
آقای شفیعی به درد خورد یا راه دیگری پیدا کردید
اگر چیزی پیدا کردید به من هم بگید

شفیعی
سه شنبه 10 خرداد 1384, 05:19 صبح
سلام
دوست عزیز خیلی ممنون من هم یک راه شبیه را ه شما پیدا کردم ولی هنوز به جواب قطعی نرسیده ام

omega5511
پنج شنبه 18 اسفند 1384, 09:16 صبح
اگر امکان دارد کاملتر توضیح بدهید که چگونه بعد از انتخاب یک رکورد از adotable1 آن را در adotable2 قرار بدهیم. (بانک اطلاعاتی access است.)

Dolphin
جمعه 19 اسفند 1384, 12:00 عصر
می تونی از select into هم استفاده کنی دیگه نیازی به ساختن جدول نیست می تونی روش شرط هم بذاری

omega5511
سه شنبه 23 اسفند 1384, 13:28 عصر
ای کاش یکبار درست از اول برای ما تازه کارها توضیح می دادید تا دیگر اینقدر سئوال نپرسیم.

omega5511
جمعه 21 مهر 1385, 15:46 عصر
آخر ما به جواب نرسیدیم

moj_vb
یک شنبه 01 بهمن 1385, 22:40 عصر
SELECT field1[, field2[, ...]] INTO newtable [IN externaldatabase] FROM source

Dolphin
سه شنبه 03 بهمن 1385, 10:39 صبح
می تونی از دستورات insert , update استفاده کنی اگر query بلد نیستی تو اکسس در مد sql query که بری کافی insert را بنویسی بعد انتخابش کن و راهنمای اکسس مثال داره برای استفاده از ado query ویا adodataset کافی ابتدا connection را وصل کنی و سپس در قسمت command text متن sql را از اکسس کپی کنی کار میدهد بسیار عالی همین برای دیدن نتخیجه هم باید active را true کنی
یا علی

halatkor
پنج شنبه 05 بهمن 1385, 08:59 صبح
سلام امیدوارم این کد به دردت بخوره:
var
Form1: TForm1;
XStr: string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
p: CURProps;
begin
T2.Close;
XStr:='Frank1.db'; // نام بانک جدید
Check(DbiGetCursorProps(T1.Handle,p));
Check(DbiCopyTable(T1.DBHandle,True,PChar(T1.Table Name),p.szTableType,
PChar(XStr)));
T2.Open;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
T1.Open;
end;