PDA

View Full Version : batch file



nima_dir
یک شنبه 10 دی 1385, 20:27 عصر
سلام دوستان
چطوری میشه یه batch file ساخت تا با اجرا شدنش یه دیتا بیس به sql server اضافه بشه و همچنین یه سری از پزرها ساخته بشن مثل مثالی که در انجمن asp.net اقای راد زحمتشو کشیدن تحت عوان کد برای GRID VIEW.
سپاسگزار از کمک دوستان

darvishiali
دوشنبه 11 دی 1385, 11:34 صبح
میتونی از دستور OSQL تحت Command Prompt استفاده کنی. راهنماییهاش تو BOL هست. اگه نتونستی باهاش کار کنی، دوباره پیغام بذار. (با این دستور میتونی هر کوئری رو اجرا کنی و نتیجه رو Command Base ببینی!)

nima_dir
دوشنبه 11 دی 1385, 16:49 عصر
سلام دوست عزیز
لطف کردین
اما اگر میشه یکم بیشتر راهنمایی کنید سپاسگزار میشم
چون من تا حالا این کار رو نکردم
سپاسگزار

darvishiali
سه شنبه 12 دی 1385, 10:43 صبح
سلام دوستم؛

Syntax دستور osql توی Command Prompt :


osql -Q "SELECT A.* FROM DBName.dbo.TableName A LEFT OUTER JOIN ..." -U"sa" -P"password" -u -o"OutputFileName"


جای اونی که با رنگ قرمز نوشته شده، کوئری خودت رو بنویس
جای اونی که با رنگ سبز نوشته شده، نام کاربر SQL خودت رو بنویس
جای اونی که با رنگ بنفش نوشته شده، رمز کاربر SQL خودت رو بنویس
جای اونی که با رنگ آبی نوشته شده، مسیر کامل و اسم فایلی که می خوای نتیجه توش نوشته بشه رو بنویس (اگه نمی خوای توی فایلی نوشته بشه و فقط انجام بشه و نتیجه رو ببینی، قسمت -o"OutputFileName" رو ننویس)
نکته : -u واسه اینه که اطلاعات به فرمت یونیکد در فایل خروجی ذخیره بشن

باز اگه نشد، یه پیغام دیگه بذار تا چندتا مثال هم بنویسم

nima_dir
سه شنبه 12 دی 1385, 17:03 عصر
سلام دوست عزیز
ایا رو اگه توی یه فایل بریزم و بعد پسوندشو bat کنم یه بچ درست میشه؟
اگر که لطف کنین و مثالهای دیگه هم بذاری که لطف بسیار بزرگی در حق من و علاقمندان میکنید
بهر حال سپاسگزار دوست عزیزم

darvishiali
جمعه 15 دی 1385, 18:00 عصر
سلام؛

ببخشید که خیلی دیر شد، خیلی مشغول بودم!

مثال 1:


copy con Make.bat
osql -Q "CREATE DATABASE %1" -U"sa" -P"" -u
osql -Q "CREATE TABLE %1.dbo.%2 (Field1 int IDENTITY(1,1) PRIMARY KEY, Field2 nvarchar(50), Field3 ntext(16))" -U"sa" -P"" -u


حالا کلید های Ctrl+Z رو فشار بده تا فایلت ذخیره بشه. فایلت آماده است. هروقت اون رو اجرا کنی یه دیتابیس به اسمی که بهش پاس میدی و یه جدول به اسم دومی که بهش پاس میدی برات میسازه.(Make.bat MyDBName MyTableName)

مثال 2:

میتونی یه فایل حاوی دستورات SQL داشته باشی و هروقت لازم شد، اون فایل رو توسط osql utility اجرا کنی. مثلا اگه دستورات SQL توی فایل MySQLFile.qry دخیره شده باشه میتونی از Command زیر برای اجرای دستورات درون اون فایل استفاده کنی:


osql -i "MySQLFile.qry" -U"sa" -P"" -u


باز هم از اینکه دیر شد، عذرخواهی می کنم!

nima_dir
جمعه 15 دی 1385, 22:11 عصر
سلام دوست عزیز
خیلی لطف کردین
اون %1 , %2 چیه؟ اگه میشه یکم درباره اونها توضیح بدین
ممنون

darvishiali
جمعه 15 دی 1385, 23:16 عصر
وقتی که به یه Batch File می خوایم پارامتر ارسال کنیم، این درصدها نشون دهنده جای استفاده پارامترها هستند و شماره اونا، اولویت پارامتر هایی که ارسال کردیم. مثلا :


Make.bat Param1 Param2 Param3

Param1 جایگزین %1 می شود،
Param2 جایگزین %2 می شود و
Param3 جایگزین %3 می شود.

این عمل مخصوص Batch File هاست و ربطی به SQL نداره.

فاطمه هاشمیان
یک شنبه 17 دی 1385, 18:40 عصر
سلام
خسته نباشید
تاپیک خیلی جالبی بود.
فقط دو تا سوال دارم ممنون میشم راهنمایی کنید. اولی اینکه، این هایی که نوشتید تو پرومپت ویندوز باید نوشته بشه یا تو پرومپت VS .
و یه سوال دیگه اینکه چطوری باید این ها رو save کنم؟

AminSobati
یک شنبه 17 دی 1385, 23:09 عصر
OSQL.EXE یک برنامه اجرایی هستش که طبیعتا DOS Prompt نیاز داره. اگر در SQL Server 2005 کار میکنید، از SQLCMD.EXE استفاده کنید. Save کردن این دستورات به سادگیه نوشتنشون در Notepad و ذخیره با پسوند bat هستش!

nima_dir
دوشنبه 18 دی 1385, 23:55 عصر
سلام دوستان
من الان از 2000 استفاده میکنم. اس کیو ال رو یه دور remove کردم و دوباره نصب کردم اما الان برای استفاده از osql اولش که پسورد میخواد که میگه این پسورد برای یوزر نیما درست نیست و اینکه یوزر ویندوز من نیما هست و یوزری به این اسم توی اس کیو ال ندارم الان چکار باید بکنم؟ نمیدونم یهو چرا اینجوری شد هر چی هم که میزنم میاد بیرن بعدشم اینکه یوزر نیما توی ویندوز من اصلا پسورد نداره. چکار باید بکنم که درست بشه؟
سپاسگزار

hedayat
پنج شنبه 21 دی 1385, 12:37 عصر
من هم دستور رو به این شکل اجرا می کنم :

osql -Q"select * From acctdatabse.dbo.acctkl" -u"acct" -p"73310" -u
اما بلافاصله پیغام می ده :

:pasword
که نه پسورد login َ منو قبول میکنه و نه شبکه !!!
پسورد دیتابیس هم صد درصد درست وارد کردم
یکی بگه مشکل من چیه ؟؟؟

darvishiali
پنج شنبه 21 دی 1385, 18:21 عصر
سلام؛

عزیزم، به Syntax دقت کافی نداشتی!
Switch های (پارامترهای) این فایل، Case Sensitive هستند. یعنی برای وارد کردن یوزر باید از -U (U بزرگ) و برای پسورد هم از -P استفاده کنی. به بزرگ و کوچک بودن حروف Switch ها دقت کن!

hedayat
شنبه 23 دی 1385, 07:34 صبح
با تشکر مشکل من حل شد

AminSobati
شنبه 12 اسفند 1385, 22:04 عصر
سلام دوستان
من الان از 2000 استفاده میکنم. اس کیو ال رو یه دور remove کردم و دوباره نصب کردم اما الان برای استفاده از osql اولش که پسورد میخواد که میگه این پسورد برای یوزر نیما درست نیست و اینکه یوزر ویندوز من نیما هست و یوزری به این اسم توی اس کیو ال ندارم الان چکار باید بکنم؟ نمیدونم یهو چرا اینجوری شد هر چی هم که میزنم میاد بیرن بعدشم اینکه یوزر نیما توی ویندوز من اصلا پسورد نداره. چکار باید بکنم که درست بشه؟
سپاسگزار
شاید لاگین مربوطه رو در SQL Server ایجاد نکردین؟