PDA

View Full Version : اکسپورت و اینپرت فایل xml از اکسس با دلفی



h_mohamadi
سه شنبه 14 اسفند 1386, 19:40 عصر
سلام خسته نباشد
من می خواستم از یک دیتابیس اکسس به وسیله دلفی فایل xml هر table را ساخته و مجدد با استفاده از دستورات دلفی آن فایل xml‌ دوباره را بازگردانی و اطلاعات آن را در دیتابیس اکسس لود کنم؟
ببخشید سئوالم ابتدایی است!!!
اگر لطف کنید دستورات آن را به من بدهید بسیار ممنون می شوم. با تشکر فراوان :لبخندساده:

vcldeveloper
چهارشنبه 15 اسفند 1386, 02:51 صبح
وقتی جدول را با کامپوننت های تب ADO (یعنی AdoDataSet, AdoQuery, AdoTable) باز کردید، متد SaveToFile را فراخوانی کنید و نوع فایل ذخیره شده را XML انتخاب کنید. برای لود کردنش هم از متد LoadFromFile استفاده کنید.

h_mohamadi
چهارشنبه 15 اسفند 1386, 14:01 عصر
آقای کشاورز ممنونم اما من می خواهم با این کار از databse بک آپ بگیرم وقتی دستور لود را می نویسم در دیبیگریدی که به AdoQuery یا AdoTable وصل است لود می شود اما در خود دیتابیس اکسس xml لود شده باقی نمی ماند لطفا من را راهنمایی کنید که با نوشتن دستور load from File بتوانم این اطلاعات را در دیتابیس بازگردانی کنم

vcldeveloper
چهارشنبه 15 اسفند 1386, 23:45 عصر
من می خواهم با این کار از databse بک آپ بگیرم
برای بک آپ گیری از Access بهتر هست که ابتدا فایل Access را فشرده و سپس فایل را به مکان جدیدی کپی کنید. برای این کار می تونید از متد CompactDatabase از Jet Engine استفاده کنید. کد مربوط به آن قبلا چندین بار در همین سایت گذاشته شده.


وقتی دستور لود را می نویسم در دیبیگریدی که به AdoQuery یا AdoTable وصل است لود می شود اما در خود دیتابیس اکسس xml لود شده باقی نمی ماند
بله. ظاهرا ADO قبل از لود کردن فایل ارتباط دیتاست با بانک را قطع می کند، در نتیجه تغییرات موجود در فایل لود شده تاثیری بر اطلاعات بانک نخواهد داشت.
روش دیگه استفاده از ClientDataSet هست. در این روش ClientDataSet از طریق یک DataSetProvider به دیتاست مربوطه (مثلا AdoTable) متصل میشه. ClientDataSet هم متدهای LoadFromFile و SaveToFile را دارد. امکان اعمال تغییرات از طریق لود کردن یک فایل هم فراهم هست. کلا ترکیب ClientDataSet با DataSetProvider به شما این امکان رو میده که فارق از نوع دیتاستی که برای اتصال به بانک اطلاعاتی استفاده می کنید، هر نوع کنترلی را بر روی داده ها داشته باشید. البته مباحث مربوط به این دو کامپوننت هم ساده نیستند و خودشون یک کتاب میشند. در هر حال، برای مشکل شما، LoadFromFile و SaveToFile از ClientDataSet کار را به درستی انجام میدند. باید تنظیمات DataSetProvider را هم درست تنظیم کنید، مثلا UpdateMode نباید روی umWhereAll باشه! اگر دقت کنید، می بینید که DataSetProvider و ClientDataSet هر کدام خصوصیات و Option ها و Event های زیادی دارند.

به هر حال، باز هم میگم که همون راه اول - CompactDatabase - برای شما مناسب تر هست. کدش هم توی سایت موجود هست.

h_mohamadi
پنج شنبه 16 اسفند 1386, 18:20 عصر
آقای کشاورز ممنونم اگر لینک CompactDatabase را بگذارید من ممنون می شوم.
اما من یک راه پیدا کردم که نمی دانم درست است یا نه؟؟ در تب Servers گزینه AccessApplication و چند تای دیگر وجود دارد این AccessApplication هم ImportXML و ExportXML دارد اما من نمی دانم چگونه باید اینها را به دیتابیس وصل کنم و در داخل دستورات ExportXML و ImportXML چه بنویسم.
با تشکر فراوان از اینکه صبورانه من را راهنمایی می کنید.اگر می شود در دستورات من را راهنمایی کنید

vcldeveloper
جمعه 17 اسفند 1386, 03:15 صبح
ممنونم اگر لینک CompactDatabase را بگذارید
http://barnamenevis.org/forum/showthread.php?t=94678
http://barnamenevis.org/forum/showthread.php?t=24485


در تب Servers گزینه AccessApplication و چند تای دیگر وجود دارد
برای استفاده از کامپوننت های این تب باید Office روی سیستم کاربر نصب باشه! راهنمای متدها و خصوصیاتشون در MSDN موجود هست.

mrm0101
جمعه 17 اسفند 1386, 11:07 صبح
سلام

کامپونت smexport بدون استفاه از کد نویسی مشکل شما را حل می کند .

h_mohamadi
یک شنبه 19 اسفند 1386, 16:27 عصر
کامپوننتی که کاربر mrm0101 زحمت کشیده اند معرفی کرده اند عالی است

h_mohamadi
یک شنبه 19 اسفند 1386, 16:44 عصر
فقط اگر بخواهم فایل xml را در Import ، Mysql کنم چه طوری باید عمل کنم اگر لطف کنید من را راهنمایی کنید بسیار ممنون می شود.

vcldeveloper
یک شنبه 19 اسفند 1386, 17:08 عصر
فقط اگر بخواهم فایل xml را در Import ، Mysql کنم چه طوری باید عمل کنم اگر لطف کنید من را راهنمایی کنید بسیار ممنون می شود.
توی عنوان تاپیک صحبت از Access هست، نه MySQL. پس این سوال ربطی به این تاپیک نداره.