This should fix #76928. This fix incorporates ideas from a patch
[mono.git] / man / sqlsharp.1
1 .TH sqlsharp 1 "25 December 2005"
2 .SH NAME 
3 sqlsharp \- Mono SQL Query command-line tool
4 .SH SYNOPSIS
5 .B sqlsharp 
6 [\-f filename] [\-o filename] [\-s]
7 .SH DESCRIPTION
8 sqlsharp is a Mono SQL tool used for entering SQL queries
9 to a database using Mono data providers.
10 .PP
11 .SH OPTIONS
12 The following options are supported:
13 .TP
14 .I "-f filename"
15 Output file to load SQL commands from.
16 .TP
17 .I "-o filename"
18 Output file to send results.
19 .TP
20 .I "-s"
21 Silent mode.
22 .PP
23 .SH HOW TO USE
24 The SQL tool accepts commands via its command line interface.  Commands
25 begin with a backslash followed by the command name.
26 .PP
27 Example:
28 .nf
29         \\open
30
31 .fi
32 .PP
33 Basically, there are five commands a user should know:
34         \\provider, \\connectionstring, \\open, \\quit, and \\help
35 .PP     
36 To connect to a database, you need to do the following:
37 .PP
38 1. set your data provider via \\provider
39 .PP
40 .nf
41         Example:
42                 SQL# \\provider mysql
43                 
44 .fi
45 .PP
46 2. set your connection string via \\connectionstring
47 .PP
48 .nf
49         Example:
50                 SQL# \\connectionstring Database=test
51                 
52 .fi
53 .PP             
54 3. open a connection to the database via \\open
55 .PP
56 .nf
57         Example:
58                 SQL# \\open
59                 
60 .fi
61 .PP
62 .SH CONNECTION AND PROVIDER COMMANDS
63 These commands are used to setup the provider, 
64 connection string, and open/close the database connnection
65 .TP
66 .I "ConnectionString"
67 Sets the Connection String
68 .nf
69
70 Example:
71         SQL# \\ConnectionString Database=testdb
72
73 For more examples, see section CONNECTION STRING EXAMPLES.
74
75 .fi
76 .TP
77 .I "Provider"
78 Sets the Provider of the Data Source.  For list of Providers, see section PROVIDERS.
79 .nf
80         
81 Example: to set the provider for MySQL:
82         SQL# \\provider mysql
83                 
84 Note: if you need to load an external provider in SQL#, 
85       see the SQL# command \\loadextprovider 
86       
87 .fi
88 .TP
89 .I "LoadExtProvider"
90 ASSEMBLY CLASS to load an external provider.  Use the complete name 
91 of its assembly and its Connection class.
92 .nf
93
94 Example: to load the MySQL provider Mono.Data.MySql
95         SQL# \\loadextprovider Mono.Data.MySql Mono.Data.MySql.MySqlConnection
96
97 .fi
98 .TP
99 .I "Open"
100 Opens a connection to the database
101 .nf
102
103 Example:
104         SQL# \\open
105
106 .fi
107 .TP
108 .I "Close"
109 Closes the connection to the database
110 .nf
111
112 Example:
113         SQL# \\close
114
115 .fi
116 .TP
117 .I "Default"
118 show default variables, such as, Provider and ConnectionString.
119 .nf
120
121 Example:
122         SQL# \\defaults
123
124 .fi
125 .TP
126 .I "Q"
127 Quit
128 .nf
129
130 Example:
131         SQL# \\q
132
133 .fi
134 .SH SQL EXECUTION COMMANDS
135 Commands to execute SQL statements
136 .PP
137 .TR
138 .I "e"
139 execute SQL query (SELECT)
140 .nf
141
142 Example: to execute a query
143         
144         SQL# SELECT * FROM EMPLOYEE
145         SQL# \\e
146
147 Note: to get \\e to automatically work after entering a query, put a
148       semicolon ; at the end of the query.
149               
150 Example: to enter and exectue query at the same time
151
152         SQL# SELECT * FROM EMPLOYEE;
153
154 .fi
155 .TP
156 .I "exenonquery"
157 execute a SQL non query (not a SELECT)
158 .nf
159
160 Example: to insert a row into a table:
161         
162         SQL# INSERT INTO SOMETABLE (COL1, COL2) VALUES('ABC','DEF')
163         SQL# \\exenonquery
164                 
165 Note: this can be used for those providers that are new and do not have
166       the ability to execute queries yet.      
167
168 .fi
169 .TP
170 .I "exescalar" 
171 execute SQL to get a single row and single column.
172 .nf
173
174 Example: to execute a Maxium aggregate
175                 SQL# SELECT MAX(grade) FROM class
176                 SQL# \\exescalar        
177
178 .fi
179 .TP
180 .I "exexml"
181 FILENAME to execute SQL and save output to XML file
182 .nf
183
184 Example: 
185         SQL# SELECT fname, lname, hire_date FROM employee
186         SQL# \\exexml employee.xml
187                 
188 Note: this depends on DataAdapter, DataTable, and DataSet
189       to be working properly
190
191 .fi
192 .TP
193 .SH FILE COMMANDS
194 Commands for importing commands from file to SQL# and vice versa
195 .TP
196 .I "f"
197 FILENAME to read a batch of SQL# commands from file
198 .nf
199
200 Example:
201         SQL# \\f batch.sql#
202                 
203 Note: the SQL# commands are interpreted as they are read.  If there is
204       any SQL statements, the are executed.
205
206 .fi
207 .TP
208 .I "o"
209 FILENAME to write result of commands executed to file.
210 .nf
211
212 Example:
213         SQL# \\o result.txt
214
215 .fi
216 .TP
217 .I "load"
218 FILENAME to load from file SQL commands into SQL buffer.
219 .nf
220
221 Example:
222         SQL# \\load commands.sql
223
224 .fi
225 .TP
226 .I "save"
227 FILENAME to save SQL commands from SQL buffer to file.
228
229 .nf
230 Example:
231         SQL# \\save commands.sql
232
233 .fi
234 .SH GENERAL PURPOSE COMMANDS
235 General commands to use.
236 .TP
237 .I "h"
238 show help (all commands).
239 .nf
240
241 Example:
242         SQL# \\h
243
244 .fi
245 .TP
246 .I "s"
247 TRUE, FALSE to silent messages.
248 .nf
249
250 Example 1:
251         SQL# \\s true
252                 
253 Example 2:
254         SQL# \\s false
255
256 .fi
257 .TP
258 .I "r"
259 reset or clear the query buffer.
260 .nf
261
262 Example:
263         SQL# \\r
264
265 .fi
266 .TP
267 .I "print"
268 show what's in the SQL buffer now.
269 .nf
270
271 Example:
272         SQL# \\print
273
274 .fi
275 SH VARIABLES WHICH CAN BE USED AS PARAMETERS
276 Commands to set variables which can be used as Parameters in an SQL statement.  If the
277 SQL contains any parameters, the parameter does not have a variable set, the 
278 user will be prompted for the value for each missing parameter.
279 .TP
280 .I "set"
281 NAME VALUE to set an internal variable.
282 .nf
283
284 Example:
285         SQL# \\set sFirstName John
286
287 .fi
288 .TP
289 .I "unset"
290 NAME to remove an internal variable.
291 .nf
292
293 Example:
294         SQL# \\unset sFirstName
295
296 .fi
297 .TP
298 .I "variable"
299 NAME to display the value of an internal variable.
300 .nf
301
302 Example:
303         SQL# \\variable sFirstName
304
305 .fi
306 .SH PROVIDER SUPPORT OPTIONS
307 Enable or Disble support for a particular provider option
308 .TP
309 .I "UseParameters"
310 TRUE,FALSE to use parameters when executing SQL which
311 use the variables that were set.
312 .PP                 
313 If this option is true, the SQL
314 contains parameters, and for each parameter
315 which does not have a SQL# variable set, the
316 user will be prompted to enter the value
317 For that parameter.
318 .nf
319
320 Example:
321         SQL# \\useparameter true
322
323 .fi
324 .PP             
325 Default: false
326 .TP
327 .I "UseSimpleReader"
328 TRUE,FALSE to use simple reader when displaying results.
329 .nf
330
331 Example:
332         SQL# \\usesimplereader true
333
334 .fi
335 .PP             
336 Default: false.  Mostly, this is dependent on the provider.  If the provider
337 does not have enough of IDataReader implemented to have
338 the normal reader working, then the simple reader can be used.
339 Providers like SqlClient, MySQL, and PostgreSQL have this
340 ption defaulting to true.
341 .PP
342 .SH PROVIDERS
343 .nf
344
345 PROVIDER   NAME          NAMESPACE                  ASSEMBLY
346
347 oracle     Oracle 8i     System.Data.OracleClient   System.Data.OracleClient
348 postgresql NetPostgreSQL Npgsql                     Npgsql
349 bytefx     ByteFX MySQL  ByteFX.Data.MySqlClient    ByteFX.Data
350 sqlclient  MS SQL 7/2000 System.Data.SqlClient      System.Data
351 odbc       ODBC          System.Data.Odbc           System.Data
352 sqlite     SQL Lite      Mono.Data.SqliteClient     Mono.Data.SqliteClient
353 sybase     Sybase        Mono.Data.SybaseClient     Mono.Data.SybaseClient
354 olebb      OLE DB        System.Data.OleDb          System.Data 
355 tds        TDS Generic   Mono.Data.TdsClient        Mono.Data.TdsClient
356 msodbc     MS ODBC       Microsoft.Data.Odbc        Microsoft.Data.Odbc
357 firebird   Firebird SQL  FirebirdSql.Data.FirebirdSql FirebirdSql.Data.Firebird
358 mysql      MySQL AB      MySql.Data.MySqlClient     MySql.Data
359
360 NOTES:
361
362 npgsql maps to postgresql above.
363 mysqlnet maps to mysql above.
364 odbc is treated as an external provider for .NET 1.1 and above.
365 msodbc is an external provider for compatibility with .NET 1.0
366
367 MySql.Data has replaced the mysql provider.  If you still need to use ByteFX.Data, then
368 use bytefx.
369
370 MySql.Data is not included with Mono.  You need to 
371 download the MySQL Connector/Net from MySQL AB at
372 http://dev.mysql.com/downloads/connector/net/1.0.html
373
374 .fi
375 .SH CONNECTION STRING SAMPLES
376 Example connection strings for various providers to be used via the
377 command \\ConnectionString
378 .nf
379
380 Example of usage:
381         \\connectionstring Database=testdb
382
383
384 Connection String examples:
385
386
387 Microsoft SQL Server via System.Data.SqlClient 
388 or Mono.Data.TdsClient provider:
389
390         Server=DANPC;Database=pubs;User ID=saPassword=
391
392         
393 ODBC via System.Data.Odbc provider using 
394 a DSN named "MSSQLDSN"  I set up 
395 in the Windows control panel's ODBC Data Sources 
396 which connects to Microsoft SQL Server 2000:
397
398         DSN=MSSQLDSN;UID=danmorg;PWD=freetds
399
400
401 SQL Lite via Mono.Data.SqliteClient 
402 provider which connects to the
403 database file SqliteTest.db; if not found, 
404 the file is created:
405
406         URI=file:SqliteTest.db
407
408
409 OLE DB via System.Data.OleDb provider 
410 which connects to a PostgreSQL database:
411
412         Provider=PostgreSQL;Addr=127.0.0.1;Database=rodrigo
413
414                 
415 Oracle via System.Data.OracleClient
416
417         Data Source=testdb;User ID=scott;Password=tiger
418
419                 
420 Npgsql (.NET PostgreSQL) from 
421 http://gborg.postgresql.org/project/npgsql/projdisplay.php
422
423         Server=localhost;Database=test;User ID=postgres;Password=fun2db
424
425                 
426 ByteFX (ByteFX MySQL) from 
427
428         Server=localhost;Database=test;User ID=mysql;Password=
429
430
431 FirebirdSql via FirebirdSql.Data.Firebird (not included with Mono)
432
433         Database=C:\\FIREBIRD\\EXAMPLES\\EMPLOYEE.FDB;User=SYSDBA;Password=masterkey;Dialect=3;Server=localhost
434
435
436 MySQL (MySQL AB) from http://www.mysql.com/
437
438         Server=localhost;Database=test;User ID=mysql;Password=mypass;Pooling=false
439
440
441 .fi
442 .SH TRACING SUPPORT
443 No support for tracing right now.
444 .SH AUTHORS
445 The Mono SQL Query Tool was written 
446 .nf
447 by Daniel Morgan <danielmorgan@verizon.net>
448 .fi
449 .PP
450 .SH LICENSE
451 The Mono SQL Query Tool is released under the terms of the GNU GPL.
452 Please read the accompanying `COPYING' file for details.  Alternative
453 licenses are available from Novell or Daniel Morgan.
454 .SH BUGS
455 To report bugs in the compiler, you can use `bug-buddy', or you can
456 file bug reports in our bug tracking system:
457 .nf
458 http://bugzilla.ximian.com.
459 .fi
460 .PP
461 .SH MAILING LISTS
462 For details, visit:
463 .nf
464 http://lists.ximian.com/mailman/listinfo/mono-devel-list
465 .fi
466 .SH WEB SITE
467 For details, visit: 
468 .nf
469 http://www.mono-project.com 
470 .fi
471 .PP
472 .SH SEE ALSO
473 mono(1), mint(1)
474