<?xml version="1.0" ?>

<!--
jEdit commando file for MS's 'OSQL', a command line
client for SQL Server.

Ollie Rutherfurd oliver@rutherfurd.net
 
$Id: osql.xml,v 1.3 2002/02/13 02:18:44 oliver Exp $ 
-->

<!DOCTYPE COMMANDO SYSTEM "commando.dtd">

<COMMANDO>
	<UI>
		<CAPTION LABEL='Connection'>
			<ENTRY LABEL='Server' VARNAME='server' DEFAULT='localhost'/>
			<ENTRY LABEL='Database' VARNAME='db' DEFAULT=''/>
			<CHOICE LABEL='Authentication' VARNAME='auth'>
				<OPTION LABEL='Trusted Connection' VALUE='trusted'/>
				<OPTION LABEL='Username/Password' VALUE='userpass'/>
			</CHOICE>
			<ENTRY LABEL="Username" VARNAME="user" DEFAULT="sa"/>
			<ENTRY LABEL="Password" VARNAME="password" DEFAULT=""/>
		</CAPTION>
		<CAPTION LABEL='Settings'>
			<TOGGLE LABEL="Line Numbering" VARNAME="numbering" DEFAULT="FALSE"/>
			<TOGGLE LABEL='Echo Input' VARNAME='echo' DEFAULT='FALSE'/>
			<TOGGLE LABEL='Abort Batch on Error' VARNAME='abort' DEFAULT='FALSE'/>
			<ENTRY LABEL="Column Width" VARNAME="width" DEFAULT="9999"/>
		</CAPTION>
	</UI>
	<COMMANDS>
		<COMMAND SHELL="System" CONFIRM="FALSE" TO_BUFFER="TRUE">
			tmpfile = jEdit.getSettingsDirectory() + "\\osql.qry";
			dos = new DataOutputStream(
				new FileOutputStream(tmpfile));

			if(textArea.getSelectionCount() == 0)
			{
				dos.writeBytes(textArea.getText());
			}
			else
			{
				selections = textArea.getSelection();
				for(i = 0; i &lt; textArea.getSelectionCount(); i++)
				{
					selection = selections[i];
					dos.writeBytes(buffer.getText(selection.start, selection.end - selection.start));
					dos.writeBytes("\n");
				}
			}
			dos.close();

			buff = new StringBuffer();
			buff.append("osql");

			if(!server.equals(""))
			{
				buff.append(" -S");
				buff.append(server);
			}

			if(!db.equals(""))
			{
				buff.append(" -d");
				buff.append(db);
			}

			buff.append(" -i\"");
			buff.append(tmpfile);
			buff.append("\"");

			// turn off numbering
			if(!numbering)
				buff.append(" -n");
			// abort batch on error
			if(abort)
				buff.append(" -b");
			// echo input
			if(echo)
				buff.append(" -e");
			// column width
			if(!width.equals(""))
			{
				buff.append(" -w");
				buff.append(width);
			}

			if(auth.equals("trusted"))
			{
				buff.append(" -E");
			}
			else
			{
				buff.append(" -U");
				buff.append(user);
				buff.append(" -P");
				buff.append(password);
			}

			return buff.toString();
		</COMMAND>
	</COMMANDS>
</COMMANDO>
