ورود

View Full Version : EXport Select Result to Text file



mrm0101
شنبه 18 دی 1389, 16:48 عصر
سلام

من در پست قبلي كه حذف شد در خواست كد ارسال اطلاعات از يك كوئري به فايل تكس با برنامه نويسي در محيط Sql را در خواست نمودم .

كلا سايت رو هم زير رو كردم متاسفانه روش علمي و دقيق پيدا نكردم اگر كسي با برنامه نويسي و بذون استفاده از ويزارد اين كار را صحيح انجام داده لطفا راهنمكايي بكند

--------------------------
جناب آقاي صادقيان بهتر است بجاي جذف يكباره تاپيك ها با مدرك و ادرس توضيح دهيد در كجاي سايت چنين موضوعي به نتيجه واقعي رسيده است .

حمیدرضاصادقیان
شنبه 18 دی 1389, 20:51 عصر
سلام.
دوست عزیز اگر زحمت جستجو رو می کشیدید مطالب گوناگونی مطرح شده است. اینجا هم قرار نیست کسی جای شخص دیگری جستجو انجام بده.
اگر دقیق جستجو می کردید پیدا می کردید.
این لینک (http://barnamenevis.org/showthread.php?266891-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%85%D8%B4%D8%AE%D8%B5%D8%A7%D8%AA-%DB%8C%DA%A9-%D8%AC%D8%AF%D9%88%D9%84-%D8%AF%D8%B1-%DB%8C%DA%A9-%D9%81%D8%A7%DB%8C%D9%84-%D9%85%D8%AA%D9%86%DB%8C&highlight=text) رو ببینید.

mrm0101
یک شنبه 19 دی 1389, 00:45 صبح
سلام
جناب آقاي صادقيان يه كم عجولانه تاپيك را حذف يا قفل مي كنيد

من عرض كردم براي ارسال اطلاعات در زبان sql در اس كيو ال سرور 2008 به فايل تكست مشكل دارم
دستوري كه شما لينكش را داده بوديد در اس كيو ال سرور 2008 جواب نمي دهد

EXEC master..xp_cmdshell'bcp "SELECT TOP 5 CUSTOMERID FROM Northwind.dbo.Customers" queryout "c:\text.txt" -c -T -x'


Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1
SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online.


اگه زحمت نيست معادل اين كد را كه در اس كيو ال سرور 2008 تست شده باشد را بگذاريد
با تشكر

حمیدرضاصادقیان
یک شنبه 19 دی 1389, 07:39 صبح
این دستورات رو اجرا کنید بعد دستوری که در اون لینک هست رو اجرا کنید.


EXEC sp_configure ‘show advanced options’, 1
GO

RECONFIGURE
GO

EXEC sp_configure ‘xp_cmdshell’, 1
GO

RECONFIGURE
GO

mrm0101
یک شنبه 19 دی 1389, 18:52 عصر
سلام

باز جواب نداد

-----------------------



EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
EXEC master..xp_cmdshell'bcp "SELECT * FROM jaheshpcm.dbo.MainPcm" queryout "c:\text.txt" -c -T -x'




---------------------------------------------




bcp: unknown option x
usage: bcp {dbtable | query} {in | out | queryout | format} datafile
[-m maxerrors] [-f formatfile] [-e errfile]
[-F firstrow] [-L lastrow] [-b batchsize]
[-n native type] [-c character type] [-w wide character type]
[-N keep non-text native] [-V file format version] [-q quoted identifier]
[-C code page specifier] [-t field terminator] [-r row terminator]
[-i inputfile] [-o outfile] [-a packetsize]
[-S server name] [-U username] [-P password]
[-T trusted connection] [-v version] [-R regional enable]
[-k keep null values] [-E keep identity values]
[-h "load hints"]
NULL

حمیدرضاصادقیان
دوشنبه 20 دی 1389, 11:08 صبح
این دستور رو لطفا چک کنید.


EXEC master..xp_cmdshell'bcp "SELECT TOP 5 Id FROM TestDb.dbo.Table1" queryout "c:\text.txt" -c -S .\sql2008 -U sa -P 123 -C RAW '

فقط جلوی S باید نام سرور SQL Server رو بنویسید در جلوی P هم باید رمز Sa رو بنویسید.
من این رو در 2008 تست کردم و جواب داد.

mrm0101
دوشنبه 20 دی 1389, 13:37 عصر
سلام آقاي صادقيان
بازم خطا مي ده . bcp: unknown option 1




EXEC master..xp_cmdshell'bcp "select * from jaheshpcm.dbo.MainPcm" queryout "c:\text.txt" -c -SRASPINA\SQL2008 -Usa -P1148 123 -C RAW '




bcp: unknown option 1
usage: bcp {dbtable | query} {in | out | queryout | format} datafile
[-m maxerrors] [-f formatfile] [-e errfile]
[-F firstrow] [-L lastrow] [-b batchsize]
[-n native type] [-c character type] [-w wide character type]
[-N keep non-text native] [-V file format version] [-q quoted identifier]
[-C code page specifier] [-t field terminator] [-r row terminator]
[-i inputfile] [-o outfile] [-a packetsize]
[-S server name] [-U username] [-P password]
[-T trusted connection] [-v version] [-R regional enable]
[-k keep null values] [-E keep identity values]
[-h "load hints"]
NULL

شما دستور را در ورژن 2008 تست كره ايد ؟ من فكر كنم توي پارمترها شايد در ورژن 2008 تغييراتي داده شده چون همه جوره اين دستور شما را تست كردم باز به نتيجه نرسيد

از دستور Bulk يا Openrowset كه براي ورود اطلاعات خيلي سريع و عالي هست نمي شه استفاده كرد ؟
بايد يه راهي باشه

شرمنده كه وقتتون رو مي گيرم
با تشكر

حمیدرضاصادقیان
دوشنبه 20 دی 1389, 13:51 عصر
سلام.
به این نکته دقت کنید. بین پارامترها و مقادیری که قرار میدید حتما باید فاصله باشه. الان برای شما هیچ فاصله ای نداره.این کدتون رو به این شکل بنویسید.


EXEC master..xp_cmdshell'bcp "select * from jaheshpcm.dbo.MainPcm" queryout "c:\text.txt" -c -S RASPINA\SQL2008 -U sa -P 1148 -C RAW '