View Full Version : سوال: انتقال اطلاعات از Access به SQL Server
dark-man
پنج شنبه 06 خرداد 1389, 10:49 صبح
با سلام و خسته نباشید خدمت اساتید .
در مورد موضوع فوق من تو سایت جستجو کردم اما به نتیجه ای نرسیدم . راهی رو می خوام بهم پیشنهاد بدید که از طریق اون بتونم اطلاعات موجود در Access رو با دلفی به SQL Server انتقال بده . ممنون میشم در این زمینه کمکم کنید .
این رو اضافه کنم که اگر جدولی که در Access هست در SQL Server وجود نداشت . اون رو بسازه .
حسین شهریاری
پنج شنبه 06 خرداد 1389, 19:45 عصر
سلام
میتونی با IMPORT/EXPORT در SQL این کارا بکنین.و هم میتونین با کدنویسی این کارا بکنین:
1-اول چک کن ببین جدول توی مقصد وجود داره یانه؟
2-اگه بود اطلاعات را از مبدا دونه دونه بخون و توی مقصد ذخیره کن.البته میتونی توسط OPENROWSET کل اطلاعات یه جدول را بخونین و در مقصد بریزید حتی توسط دستور Select Into میتونی اگه جدول وجود نداشت هم این کارا بکنی یعنی این دستور اگه جدول وجود تداشته باشه اونا ایجاد میکنه و اطلاعات مبدا را در جدول مقصد درج میکنه.
dark-man
جمعه 07 خرداد 1389, 12:17 عصر
سلام
میتونی با IMPORT/EXPORT در SQL این کارا بکنین.و هم میتونین با کدنویسی این کارا بکنین:
1-اول چک کن ببین جدول توی مقصد وجود داره یانه؟
2-اگه بود اطلاعات را از مبدا دونه دونه بخون و توی مقصد ذخیره کن.البته میتونی توسط OPENROWSET کل اطلاعات یه جدول را بخونین و در مقصد بریزید حتی توسط دستور Select Into میتونی اگه جدول وجود نداشت هم این کارا بکنی یعنی این دستور اگه جدول وجود تداشته باشه اونا ایجاد میکنه و اطلاعات مبدا را در جدول مقصد درج میکنه.
ممنون از راهنمائیتون . اما من می خوام این کار رو با دلفی انجام بدم . نه با خود sql مشکل openrowset برای من این بود که در sql 2000 جواب می داد اما در sql 2008 رو single threaded apartement کار نمی کرد و حتما" باید multi می شد . برای استفاده از دلفی اگه راه حلی دارید ممنون میشم .
حسین شهریاری
جمعه 07 خرداد 1389, 13:51 عصر
سلام
1-دونه به دونه جداولتونا با دستور Create Table برای ایجاد با Query به SQL ارسال کنید.
مثال:
Adoquery.sql.text:='Create Table Test(A int,B char(10))';
Adoquery.execsql;
2-دوتا AdoTable داشته باشید که یکی به جدول مربوطه توی اکسس ربط داشته باشه و دیگری به جدول جدید در SQl اون موقه دونه به دونه توی حلقه رکوردها را در جدول مقصد درج کنید.مواظب باشید دو جدول باید سازگار باشند.
مثال:
sqltable.open;
acctable.open;
acctable.first;
while not acctable.eof do
begin
sqltable.insert;
sqltable.fieldbyname('a').asinteger:=acctable.fiel dbyname('a').asinteger;
sqltable.fieldbyname('b').asstring:=acctable.field byname('b').asstring;
sqltable.post;
acctable.next;
end;
این روش دستی بود نمیدونم شاید افراد دیگه کامپوننت آماده داشته باشن.روشی که به ذهن من رسید این بود.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.