Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/class
diff options
context:
space:
mode:
authorDaniel Morgan <monodanmorg@yahoo.com>2002-10-14 00:51:22 +0400
committerDaniel Morgan <monodanmorg@yahoo.com>2002-10-14 00:51:22 +0400
commit1dd2506a4a58ff3f56564cc19f10f1fdf5910198 (patch)
tree3ad1aad8e9ef45bcf36042af74201e5249690d6f /mcs/class
parente76e7a3106ed374a40d3a94fb92d2df678bcf845 (diff)
2002-10-13 Daniel Morgan <danmorg@sc.rr.com>
* SqlSharpCli.cs: better formatting of output svn path=/trunk/mcs/; revision=8228
Diffstat (limited to 'mcs/class')
-rw-r--r--mcs/class/System.Data/Test/ChangeLog4
-rw-r--r--mcs/class/System.Data/Test/SqlSharpCli.cs180
2 files changed, 143 insertions, 41 deletions
diff --git a/mcs/class/System.Data/Test/ChangeLog b/mcs/class/System.Data/Test/ChangeLog
index 73f5fc1cca3..1fe6b932880 100644
--- a/mcs/class/System.Data/Test/ChangeLog
+++ b/mcs/class/System.Data/Test/ChangeLog
@@ -1,5 +1,9 @@
2002-10-13 Daniel Morgan <danmorg@sc.rr.com>
+ * SqlSharpCli.cs: better formatting of output
+
+2002-10-13 Daniel Morgan <danmorg@sc.rr.com>
+
* SqlSharpCli.cs: modified
- add support for the external Mono.Data.SqliteClient
ADO.NET provider. All the user has to do is
diff --git a/mcs/class/System.Data/Test/SqlSharpCli.cs b/mcs/class/System.Data/Test/SqlSharpCli.cs
index 1b1e85d3b6c..11dab99bde3 100644
--- a/mcs/class/System.Data/Test/SqlSharpCli.cs
+++ b/mcs/class/System.Data/Test/SqlSharpCli.cs
@@ -93,8 +93,12 @@ namespace Mono.Data.SqlSharp {
// called by DisplayData()
public void DisplayResult(IDataReader reader, DataTable schemaTable) {
+ const string zero = "0";
+ StringBuilder column = null;
StringBuilder line = null;
StringBuilder hdrUnderline = null;
+ string outData = "";
+ int hdrLen = 0;
int spacing = 0;
int columnSize = 0;
@@ -118,29 +122,43 @@ namespace Mono.Data.SqlSharp {
DataRow schemaRow = schemaTable.Rows[c];
string columnHeader = (string) schemaRow["ColumnName"];
- int columnHeaderSize = columnHeader.Length;
-
- line.Append(columnHeader);
- hdrUnderline.Append(underlineChar, columnHeaderSize);
+ if(columnHeader.Equals(""))
+ columnHeader = "?column?";
+ if(columnHeader.Length > 32)
+ columnHeader = columnHeader.Substring(0,32);
// spacing
columnSize = (int) schemaRow["ColumnSize"];
dataType = (string) schemaRow["DataType"];
dataTypeName = reader.GetDataTypeName(c);
+ if(dataType.Equals("System.DateTime"))
+ columnSize = 19;
+
// columnSize correction based on data type
if(dataType.Equals("System.Boolean")) {
columnSize = 5;
}
- if(provider.Equals("POSTGRESQL"))
+ if(provider.Equals("POSTGRESQL") ||
+ provider.Equals("MYSQL"))
if(dataTypeName.Equals("text"))
columnSize = 32; // text will be truncated to 32
- if(columnHeaderSize < columnSize) {
- spacing = columnSize - columnHeaderSize;
+ hdrLen = (columnHeader.Length > columnSize) ?
+ columnHeader.Length : columnSize;
+
+ if(hdrLen < 0)
+ hdrLen = 0;
+ if(hdrLen > 32)
+ hdrLen = 32;
+
+ line.Append(columnHeader);
+ if(columnHeader.Length < hdrLen) {
+ spacing = hdrLen - columnHeader.Length;
line.Append(spacingChar, spacing);
- hdrUnderline.Append(underlineChar, spacing);
}
+ hdrUnderline.Append(underlineChar, hdrLen);
+
line.Append(" ");
hdrUnderline.Append(" ");
}
@@ -149,38 +167,43 @@ namespace Mono.Data.SqlSharp {
OutputHeader(hdrUnderline.ToString());
OutputHeader("");
- hdrUnderline = null;
-
- // DEBUG - need to know the columnSize
- /*
- line = new StringBuilder();
- foreach(DataRow schemaRow in schemaTable.Rows) {
- columnSize = (int) schemaRow["ColumnSize"];
- line.Append(columnSize.ToString());
- line.Append(" ");
- }
- Console.WriteLine(line.ToString());
- Console.WriteLine();
- line = null;
- */
+ hdrUnderline = null;
int rows = 0;
// column data
while(reader.Read()) {
rows++;
-
+
line = new StringBuilder();
for(c = 0; c < reader.FieldCount; c++) {
int dataLen = 0;
string dataValue;
+ column = new StringBuilder();
+ outData = "";
row = schemaTable.Rows[c];
string colhdr = (string) row["ColumnName"];
+ if(colhdr.Equals(""))
+ colhdr = "?column?";
+ if(colhdr.Length > 32)
+ colhdr = colhdr.Substring(0, 32);
+
columnSize = (int) row["ColumnSize"];
dataType = (string) row["DataType"];
dataTypeName = reader.GetDataTypeName(c);
+
+ if(dataType.Equals("System.DateTime"))
+ columnSize = 19;
+ columnSize = (colhdr.Length > columnSize) ?
+ colhdr.Length : columnSize;
+
+ if(columnSize < 0)
+ columnSize = 0;
+ if(columnSize > 32)
+ columnSize = 32;
+
// certain types need to have the
// columnSize adjusted for display
// so the column will line up for each
@@ -188,35 +211,109 @@ namespace Mono.Data.SqlSharp {
if(dataType.Equals("System.Boolean")) {
columnSize = 5;
}
- if(provider.Equals("POSTGRESQL"))
+ if(provider.Equals("POSTGRESQL") ||
+ provider.Equals("MYSQL"))
if(dataTypeName.Equals("text"))
columnSize = 32; // text will be truncated to 32
-
+
+ dataValue = "";
+
if(reader.IsDBNull(c)) {
dataValue = "";
dataLen = 0;
}
else {
object obj = reader.GetValue(c);
-
- dataValue = obj.ToString();
+
+ StringBuilder sb;
+ DateTime dt;
+ if(dataType.Equals("System.DateTime")) {
+ // display date in ISO format
+ // "YYYY-MM-DD HH:MM:SS"
+ dt = (DateTime) obj;
+ sb = new StringBuilder();
+ // year
+ if(dt.Year < 10)
+ sb.Append("000" + dt.Year);
+ else if(dt.Year < 100)
+ sb.Append("00" + dt.Year);
+ else if(dt.Year < 1000)
+ sb.Append("0" + dt.Year);
+ else
+ sb.Append(dt.Year);
+ sb.Append("-");
+ // month
+ if(dt.Month < 10)
+ sb.Append(zero + dt.Month);
+ else
+ sb.Append(dt.Month);
+ sb.Append("-");
+ // day
+ if(dt.Day < 10)
+ sb.Append(zero + dt.Day);
+ else
+ sb.Append(dt.Day);
+ sb.Append(" ");
+ // hour
+ if(dt.Hour < 10)
+ sb.Append(zero + dt.Hour);
+ else
+ sb.Append(dt.Hour);
+ sb.Append(":");
+ // minute
+ if(dt.Minute < 10)
+ sb.Append(zero + dt.Minute);
+ else
+ sb.Append(dt.Minute);
+ sb.Append(":");
+ // second
+ if(dt.Second < 10)
+ sb.Append(zero + dt.Second);
+ else
+ sb.Append(dt.Second);
+
+ dataValue = sb.ToString();
+ }
+ else {
+ dataValue = obj.ToString();
+ }
+
dataLen = dataValue.Length;
- line.Append(dataValue);
+ if(dataLen < 0) {
+ dataValue = "";
+ dataLen = 0;
+ }
+ if(dataLen > 32) {
+ dataValue = dataValue.Substring(0,32);
+ dataLen = 32;
+ }
}
- line.Append(" ");
-
+ columnSize = columnSize > dataLen ? columnSize : dataLen;
+
// spacing
- spacingChar = ' ';
+ spacingChar = ' ';
if(dataLen < columnSize) {
spacing = columnSize - dataLen;
- line.Append(spacingChar, spacing);
- }
- spacingChar = ' ';
- if(columnSize < colhdr.Length) {
- spacing = colhdr.Length - columnSize;
- line.Append(spacingChar, spacing);
+ column.Append(spacingChar, spacing);
+ switch(dataType) {
+ case "System.Int16":
+ case "System.Int32":
+ case "System.Int64":
+ case "System.Single":
+ case "System.Double":
+ case "System.Decimal":
+ outData = column.ToString() + dataValue;
+ break;
+ default:
+ outData = dataValue + column.ToString();
+ break;
+ }
}
-
+ else
+ outData = dataValue;
+
+ line.Append(outData);
+ line.Append(" ");
}
OutputData(line.ToString());
line = null;
@@ -590,7 +687,7 @@ namespace Mono.Data.SqlSharp {
// OpenDataSource - open connection to the data source
public void OpenDataSource() {
- Console.WriteLine("Attempt to Open...");
+ Console.WriteLine("Attempt to open connection...");
try {
switch(provider) {
@@ -672,7 +769,7 @@ namespace Mono.Data.SqlSharp {
"Mono.Data.MySql.MySqlConnection"};
SetupExternalProvider(extp);
UseParameters = false;
- UseSimpleReader = true;
+ UseSimpleReader = false;
break;
case "SQLITE":
extp = new string[3] {
@@ -1185,7 +1282,8 @@ namespace Mono.Data.SqlSharp {
while(entry.ToUpper().Equals("\\Q") == false &&
entry.ToUpper().Equals("\\QUIT") == false) {
- entry = ReadSqlSharpCommand();
+ while((entry = ReadSqlSharpCommand()) == "") {}
+
if(entry.Substring(0,1).Equals("\\")) {
HandleCommand(entry);