PDA

View Full Version : پیدا کردن مکان فایل SQL در حال اجرا، بر روی کامپیوتر



efarzad
سه شنبه 11 مهر 1391, 15:37 عصر
با سلام خدمت دوستان
من اطلاعات یک فایل XML را باید در جدولی از یک دیتابیس Import کنم.
دستورات Import لازم را دارم، اما من میخواهم این فایل XML را در کنار فایل اسکریپتم بگذارم تا از هر جایی و برروی هر کامپیوتری که این فایل اسکریپت اجرا شد، بتواند فایل XML را پیدا کرده و Import را انجام دهد.
در حال حاضر میخواهم بدانم که چگونه میتوانم در اسکریپتم، محل فعلی اجرای فایل اسکریپت را بدست بیاورم تا ازطریق آن به فایل XML دسترسی پیدا کنم و Import را انجام دهم.

با تشکر !

حمیدرضاصادقیان
چهارشنبه 12 مهر 1391, 09:19 صبح
سلام.
منظور از فایل Script چیه؟ شما میتوانید مسیر فایلهای دیتابیس رو با استفاده از یک Select از جدول Sysdatabases بدست بیارید.

efarzad
چهارشنبه 12 مهر 1391, 09:41 صبح
از جوابتون ممنونم.

منظورم از اسکریپت یک فایل SQL هست که توش از دستورات TSQL استفاده کردم.
حالا میخوام اطلاعاتی رو که در یک فایل XML هست رو در یک جدول ذخیره کنم که دستورات این کار هم در همین اسکریپت هست.
من این فایل XML رو در کنار فایل اسکریپت قرار دادم و چون میخوام این دو فایل رو بصورت پرتابل داشته باشم و بتونم هر جایی فایل اسکریپت رو اجرا کنم، نیاز دارم که در خود دستورات اسکریپتم بدونم که فایل اسکریپت در حال حاضر کجا قرار داره ( منظورم آدرسشه ) تا از این طریق آدرس فایل XML رو که در کنارش هست بدست بیارم و بتونم عمل Import از فایل XML رو انجام بدم.

باز هم ممنون.

efarzad
چهارشنبه 12 مهر 1391, 11:32 صبح
پس از جستجوهای زیاد، تا حد زیادی متوجه جوابم شدم.
اونم اینه که چون دستورات SQL Server بصورت ServerSide اجرا میشوند، دادن آدرسی که مربوط به کلاینت میشود، باعث میشود که SQL Server آن را به عنوان آدرسی بر روی سرور در نظر بگیرد.
بهترین راه اینست که آدرس مشخصی را بر روی سرور در نظر بگیرم، فایل XML را در آنجا کپی کنم و سپس اسکریپت را با استفاده از آدرسی که دارم اجرا کنم.

حمیدرضاصادقیان
چهارشنبه 12 مهر 1391, 11:39 صبح
اینجا (http://stackoverflow.com/questions/11242267/rename-files-on-disk-with-t-sql) رو ببینید که مشکلتون حل میشه یاخیر.

efarzad
شنبه 22 مهر 1391, 15:04 عصر
با تشکر از جواب شما, بالاخره بهترین راه رو پیدا کردم.
اونم اینکه ابتدا فایل XML رو در یک جدولی Import کردم و سپس یک دستور Select نوشتم که با ازای هر رکورد Import شده، یک دستور Insert تولید میکرد. چیزی شبیه این دستور :

SELECT 'INSERT INTO TestTable VALUES (' + Col1 + ',' + Col2 + ')' FROM ImportedTable

سپس تمام این دستورات رو در یک فایل اسکریپت ذخیره کردم و حالا به جای خوندن از یک فایل XML یک اسکریپت دارم که پر از دستورات INSERT است و میتوانم از همین فایل در هر جایی استفاده کنم.