sqlsharp(1) General Commands Manual sqlsharp(1)

sqlsharp - ابزار خط فرمانی پرس‌وجوی SQL در مونو

sqlsharp [-f filename] [-o filename] [-s]

دستور sqlsharp یک ابزار SQL در مونو است که برای وارد کردن و اجرای پرس‌وجوهای SQL در یک پایگاه داده با استفاده از فراهم‌کننده‌های دادهٔ مونو به کار می‌رود.

گزینه‌های زیر پشتیبانی می‌شوند:

-f filename
فایلی برای بارگذاری دستورات SQL از آن.
-o filename
فایل خروجی برای ارسال نتایج به آن.
حالت بی‌صدا.

ابزار SQL دستورات را از طریق رابط خط فرمان خود می‌پذیرد. دستورات با یک بک‌اسلش (\) آغاز می‌شوند که نام دستور در ادامهٔ آن می‌آید.

مثال:

\open

در اصل، پنج دستور وجود دارد که کاربر باید بداند: \provider، \connectionstring، \open، \quit و \help

برای اتصال به یک پایگاه داده، باید مراحل زیر را انجام دهید:

۱. فراهم‌کننده دادهٔ خود را با \provider مشخص کنید

Example:
	SQL# \provider mysql

۲. رشته اتصال خود را با \connectionstring مشخص کنید

Example:
	SQL# \connectionstring Database=test

۳. اتصال به پایگاه داده را با \open باز کنید

Example:
	SQL# \open

این دستورات برای برپایی فراهم‌کننده، رشته اتصال و باز یا بسته کردن اتصال پایگاه داده به کار می‌روند

رشته اتصال را تعیین می‌کند
Example:
	SQL# \ConnectionString Database=testdb
	or
	SQL# \cs Database=testdb
برای مثال‌های بیشتر، بخش CONNECTION STRING EXAMPLES را ببینید.
فراهم‌کنندهٔ منبع داده را تنظیم می‌کند. برای دیدن فهرست فراهم‌کننده‌ها، بخش PROVIDERS را ببینید.
Example: to set the provider for MySQL:
	SQL# \provider mysql
           or
	SQL# \p mysql

Note: if you need to load an external provider in SQL#, 
      see the SQL# command \loadextprovider 
فهرست کردن فراهم‌کننده‌های ADO.NET 2.0 موجود
Example:
	SQL# \ListProviders 
	   or
	SQL# \listp
برای ساخت تک‌تک پارامترهای اتصال از شما ورودی می‌گیرد و رشته اتصال را می‌سازد و همچنین به شما اجازه می‌دهد گذرواژه‌ای را وارد کنید که در صفحه بازتاب (echo) داده نمی‌شود.
Example:
	SQL# \bcs
	ConnectionString Option: Data Source [] SQL# blazer
	ConnectionString Option: Persist Security Info [False] SQL# 
	ConnectionString Option: Integrated Security [False] SQL# 
	ConnectionString Option: User ID [] SQL# scott
	Password: *****
	ConnectionString Option: Enlist [False] SQL# 
	ConnectionString Option: Pooling [True] SQL# 
	ConnectionString Option: Min Pool Size [0] SQL# 
	ConnectionString Option: Max Pool Size [100] SQL# 
	ConnectionString Option: Unicode [False] SQL# 
	ConnectionString Option: Load Balance Timeout [0] SQL# 
	ConnectionString Option: Omit Oracle Connection Name [False] SQL# 
	ConnectionString is set.	
کلاس و اسمبلی (ASSEMBLY CLASS) برای بارگذاری یک فراهم‌کننده خارجی. از نام کامل اسمبلی و کلاس Connection مربوط به آن استفاده کنید.
Example: to load the MySQL provider Mono.Data.MySql
	SQL# \loadextprovider Mono.Data.MySql Mono.Data.MySql.MySqlConnection
یک اتصال به پایگاه داده باز می‌کند
Example:
	SQL# \open
اتصال به پایگاه داده را می‌بندد
Example:
	SQL# \close
نمایش متغیرهای پیش‌فرض، مانند Provider و ConnectionString.
Example:
	SQL# \defaults
خروج
Example:
	SQL# \q
دستوراتی برای اجرای عبارت‌های SQL
e
اجرای پرس‌وجوی SQL (دستور SELECT)
مثال: برای اجرای یک پرس‌وجو

	SQL# SELECT * FROM EMPLOYEE
	SQL# \e
نکته: برای اینکه \e پس از وارد کردن یک پرس‌وجو به‌طور خودکار کار کند،
      یک نقطه‌ویرگول ; در انتهای پرس‌وجو قرار دهید.

مثال: برای وارد کردن و اجرای پرس‌وجو به‌طور هم‌زمان
	SQL# SELECT * FROM EMPLOYEE;
اجرای یک دستور غیر پرس‌وجویی در SQL (هر چیزی غیر از SELECT)
مثال: برای درج یک سطر در جدول:

	SQL# INSERT INTO SOMETABLE (COL1, COL2) VALUES('ABC','DEF')
	SQL# \exenonquery

نکته: این دستور می‌تواند برای ارائه‌دهندگانی استفاده شود که جدید هستند
      و هنوز قابلیت اجرای پرس‌وجو را ندارند.
اجرای SQL برای دریافت یک سطر و یک ستون واحد (مقدار اسکالر).
مثال: برای اجرای یک تابع تجمیعی Maximum
		SQL# SELECT MAX(grade) FROM class
		SQL# \exescalar	
FILENAME برای اجرای SQL و ذخیره خروجی در یک فایل XML
مثال: 
	SQL# SELECT fname, lname, hire_date FROM employee
	SQL# \exexml employee.xml

نکته: این دستور به کارکرد صحیح DataAdapter ،DataTable و DataSet
      وابسته است

دستوراتی برای وارد کردن فرمان‌ها از فایل به SQL# و برعکس

FILENAME برای خواندن دسته‌ای از دستورات SQL# از فایل
مثال:
	SQL# \f batch.sql#

نکته: دستورات SQL# به‌محض خوانده شدن تفسیر می‌شوند. اگر هرگونه
      عبارت SQL وجود داشته باشد، اجرا خواهد شد.
FILENAME برای نوشتن نتیجه دستورات اجرا شده در فایل.
مثال:
	SQL# \o result.txt
FILENAME برای بارگذاری دستورات SQL از فایل در بافر SQL.
مثال:
	SQL# \load commands.sql
FILENAME برای ذخیره دستورات SQL از بافر SQL در فایل.
مثال:
	SQL# \save commands.sql
دستورهای عمومی برای استفاده.
نمایش راهنما (همه دستورها).
مثال:
	SQL# \h
TRUE،‏ FALSE برای بی‌صدا کردن پیام‌ها.
مثال ۱:
	SQL# \s true

مثال ۲:
	SQL# \s false
بازنشانی یا پاک کردن بافر پرس‌وجو.
مثال:
	SQL# \r
نمایش محتوای فعلی بافر SQL.
مثال:
	SQL# \print

دستورهایی برای مقداردهی متغیرهایی که می‌توانند به عنوان پارامتر در یک دستور SQL استفاده شوند. اگر SQL شامل هرگونه پارامتری باشد و برای آن پارامتر متغیری تنظیم نشده باشد، مقدار هر پارامتر ناموجود از کاربر پرسیده خواهد شد.

NAME VALUE برای مقداردهی یک متغیر داخلی.
مثال:
	SQL# \set sFirstName John
NAME برای حذف یک متغیر داخلی.
مثال:
	SQL# \unset sFirstName
NAME برای نمایش مقدار یک متغیر داخلی.
مثال:
	SQL# \variable sFirstName

فعال یا غیرفعال کردن پشتیبانی از یک گزینهٔ ارائه‌دهندهٔ خاص.

TRUE،‏FALSE برای استفاده از پارامترها هنگام اجرای SQL که از متغیرهای تنظیم‌شده استفاده می‌کنند.

اگر این گزینه true باشد، SQL حاوی پارامترها بوده و به ازای هر پارامتری که متغیر SQL# برای آن تنظیم نشده باشد، از کاربر خواسته می‌شود مقدار آن پارامتر را وارد کند.

مثال:
	SQL# \useparameter true

پیش‌فرض: false

TRUE،‏FALSE برای استفاده از خواننده ساده (simple reader) هنگام نمایش نتایج.
مثال:
	SQL# \usesimplereader true

پیش‌فرض: false. این مورد بیشتر به ارائه‌دهنده بستگی دارد. اگر ارائه‌دهنده بخش کافی از IDataReader را پیاده‌سازی نکرده باشد تا خواننده عادی کار کند، می‌توان از خواننده ساده (simple reader) استفاده کرد. ارائه‌دهندگانی مانند SqlClient،‏ MySQL و PostgreSQL این گزینه را به‌طور پیش‌فرض روی true دارند.

PROVIDER   NAME          NAMESPACE                  ASSEMBLY
oracle     Oracle 8i-11g System.Data.OracleClient   System.Data.OracleClient
postgresql NetPostgreSQL Npgsql                     Npgsql
bytefx     ByteFX MySQL  ByteFX.Data.MySqlClient    ByteFX.Data
sqlclient  MS SQL 7-2008 System.Data.SqlClient      System.Data
odbc       ODBC          System.Data.Odbc           System.Data
sqlite     SQL Lite      Mono.Data.SqliteClient     Mono.Data.SqliteClient
sybase     Sybase        Mono.Data.SybaseClient     Mono.Data.SybaseClient
firebird   Firebird SQL  FirebirdSql.Data.FirebirdSql FirebirdSql.Data.Firebird
mysql      MySQL AB      MySql.Data.MySqlClient     MySql.Data
نکات:
Npgsql ارائه‌دهنده داده .NET برای PostgreSQL است. آخرین نسخه
را می‌توانید از نشانی زیر دریافت کنید:
http://npgsql.projects.postgresql.org
بسته MySql.Data همان MySQL Connector/Net برای اتصال به پایگاه‌های داده MySQL است.
برای MySQL، اکیداً توصیه می‌شود به جای ارائه‌دهنده قدیمی ByteFX.Data از MySql.Data
استفاده کنید. متأسفانه MySql.Data همراه Mono ارائه نمی‌شود.
می‌توانید آخرین نسخه MySQL Connector/Net را از MySQL AB در نشانی زیر دریافت کنید:
http://dev.mysql.com/downloads
بسته FirebirdSql.Data.Firebird را می‌توان از اینجا دریافت کرد:
http://www.firebirdsql.org/index.php?op=files&id=netprovider

نمونه رشته‌های اتصال برای ارائه‌دهندگان گوناگون جهت استفاده از طریق دستور onnectionString

نمونه استفاده:
	onnectionstring Database=testdb
نمونه‌های رشته اتصال:
Microsoft SQL Server از طریق System.Data.SqlClient 
	Server=DANPC;Database=pubs;User ID=saPassword=;
	برای Integrated Security (امنیت یکپارچه)، به یاد داشته باشید که Mono
	با Windows، کلاینت یا سرور SQL Server و همچنین Windows Server یکپارچه
	نیست. بنابراین، باید نام دامنه Windows و نام کاربری دامنه و گذرواژه را
	برای این کاربر ارائه دهید.
	Server=DANPC;Database=pubs;User ID=DOMAINser;Password=pass;Integrated Security=SSPI
	برای یک سرور محلی، می‌توانید از localhost استفاده کنید.

ارائه‌دهنده ODBC از طریق System.Data.Odbc با استفاده از 
یک DSN با نام "MSSQLDSN" تنظیم‌شده در
ODBC Data Sources در کنترل‌پنل Windows 
که به Microsoft SQL Server 2000 متصل می‌شود:
	DSN=MSSQLDSN;UID=danmorg;PWD=freetds
برای استفاده از ODBC در Unix، بسته unixODBC از http://www.unixodbc.org
یا iODBC از http://www.iodbc.org را در نظر بگیرید
ارائه‌دهنده SQL Lite از طریق Mono.Data.SqliteClient 
که به فایل پایگاه داده SqliteTest.db متصل می‌شود؛
اگر پیدا نشود، فایل ایجاد خواهد شد:
	URI=file:SqliteTest.db
Oracle از طریق System.Data.OracleClient
	Data Source=testdb;User ID=scott;Password=tiger
        اگر ترجیح می‌دهید از فایل tnsnames.ora استفاده نکنید، می‌توانید
	از یک رشته اتصال استفاده کنید که توصیف شبکه TNS محصور در
	پرانتز را مجاز می‌داند؛ مانند نمونه زیر که شامل host، port و
	service name است. برای host، می‌توانید به جای یک نام میزبان
        یک آدرس IP مشخص کنید.
User ID=SCOTT;
Password=TIGER;
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=TESTDB)))

Npgsql (.NET PostgreSQL) از 
http://gborg.postgresql.org/project/npgsql/projdisplay.php
	Server=localhost;Database=test;User ID=postgres;Password=fun2db

ByteFX (ByteFX MySQL) از 
	لطفاً به جای آن از MySql.Data استفاده کنید.
	Server=localhost;Database=test;User ID=mysql;Password=
FirebirdSql از طریق FirebirdSql.Data.Firebird (دریافت آخرین نسخه از FirebirdSql.org)
	Database=C:REBIRD;Password=masterkey;Dialect=3;Server=localhost
MySQL از طریق (MySql.Data) MySQL Connector/Net از http://www.mysql.com
	Server=localhost;Database=test;User ID=mysql;Password=mypass;Pooling=false
در حال حاضر پشتیبانی‌ای برای ردگیری وجود ندارد.

ابزار Mono SQL Query Tool نوشته شده است

توسط Daniel Morgan <monodanmorg@yahoo.com>

ابزار Mono SQL Query Tool تحت شرایط GNU GPL منتشر شده است. لطفاً برای جزئیات، فایل همراه `COPYING' را مطالعه کنید. مجوزهای جایگزین از طریق Novell یا Daniel Morgan در دسترس هستند.

برای گزارش باگ‌های کامپایلر، می‌توانید گزارش‌های باگ را در سامانه پیگیری باگ ما ثبت کنید:

https://github.com/mono/mono/issues

برای جزئیات بیشتر، مراجعه کنید به:

http://lists.ximian.com/mailman/listinfo/mono-devel-list

برای جزئیات بیشتر، مراجعه کنید به:

http://www.mono-project.com

mono(1)

9 September 2008