diff --git a/src/Example/Program.cs b/src/Example/Program.cs
index c74bd2ade489dd7948e9f05db928306fe06a63d2..eddbcab796a7f7b014c8b3dfabc505a1b5174c14 100644
--- a/src/Example/Program.cs
+++ b/src/Example/Program.cs
@@ -72,7 +72,7 @@ static void Main(string[] args)
connection.CreateCommand("DROP DATABASE IF EXISTS IoTSharp").ExecuteNonQuery();
connection.CreateCommand("CREATE DATABASE IoTSharp KEEP 365 DAYS 10 BLOCKS 4;").ExecuteNonQuery();
connection.ChangeDatabase("IoTSharp");
- connection.CreateCommand("CREATE TABLE IF NOT EXISTS telemetrydata (ts timestamp,value_type tinyint, value_boolean bool, value_string binary(10240), value_long bigint,value_datetime timestamp,value_double double) TAGS (deviceid binary(32),keyname binary(64));").ExecuteNonQuery();
+ connection.CreateCommand("CREATE STABLE IF NOT EXISTS telemetrydata (ts timestamp,value_type tinyint, value_boolean bool, value_string binary(10240), value_long bigint,value_datetime timestamp,value_double double) TAGS (deviceid binary(32),keyname binary(64));").ExecuteNonQuery();
//connection.CreateCommand($"CREATE TABLE dev_Thermometer USING telemetrydata TAGS (\"Temperature\")").ExecuteNonQuery();
var devid = $"{Guid.NewGuid():N}";
UploadTelemetryData(connection, devid, "Temperature", 999);
@@ -82,7 +82,8 @@ static void Main(string[] args)
UploadTelemetryData(connection, devid2, "Humidity", 666);
var reader2 = connection.CreateCommand("select last_row(*) from telemetrydata group by deviceid,keyname ;").ExecuteReader();
ConsoleTableBuilder.From(reader2.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine();
-
+
+ Console.WriteLine("DROP DATABASE IoTSharp", database, connection.CreateCommand($"DROP DATABASE IoTSharp;").ExecuteNonQuery());
connection.Close();
@@ -121,7 +122,7 @@ static void UploadTelemetryData( TaosConnection connection, string devid, strin
{
for (int i = 0; i < count; i++)
{
- connection.CreateCommand($"INSERT INTO device_{devid}_{keyname} USING telemetrydata TAGS(\"{devid}\",\"{keyname}\") (ts,value_type,value_long) values (now,2,{i});").ExecuteNonQuery();
+ connection.CreateCommand($"INSERT INTO device_{devid}_{keyname} USING telemetrydata TAGS(\"{devid}\",\"{keyname}\") values (now,2,true,'{i}',{i},now,{i});").ExecuteNonQuery();
}
}
}
diff --git a/src/Maikebing.Data.Taos/Driver/TDengineDriver.cs b/src/Maikebing.Data.Taos/Driver/TDengineDriver.cs
index 6e3d866f378a57781bd79f81487fcb938b50df49..fa6959d58fb79d1de7e51008bc0fa9172750a113 100644
--- a/src/Maikebing.Data.Taos/Driver/TDengineDriver.cs
+++ b/src/Maikebing.Data.Taos/Driver/TDengineDriver.cs
@@ -380,7 +380,11 @@ internal enum TDengineDataType
TSDB_DATA_TYPE_DOUBLE = 7,
TSDB_DATA_TYPE_BINARY = 8,
TSDB_DATA_TYPE_TIMESTAMP = 9,
- TSDB_DATA_TYPE_NCHAR = 10
+ TSDB_DATA_TYPE_NCHAR = 10,
+ TSDB_DATA_TYPE_UTINYINT = 11,
+ TSDB_DATA_TYPE_USMALLINT = 12,
+ TSDB_DATA_TYPE_UINT = 13,
+ TSDB_DATA_TYPE_UBIGINT = 14
}
public enum TSDB_TIME_PRECISION : int
{
@@ -411,17 +415,27 @@ public string TypeName()
return "BOOLEAN";
case TDengineDataType.TSDB_DATA_TYPE_TINYINT:
+ case TDengineDataType.TSDB_DATA_TYPE_UTINYINT:
return "BYTE";
case TDengineDataType.TSDB_DATA_TYPE_SMALLINT:
return "SHORT";
+ case TDengineDataType.TSDB_DATA_TYPE_USMALLINT:
+ return "USHORT";
+
case TDengineDataType.TSDB_DATA_TYPE_INT:
return "INT";
+ case TDengineDataType.TSDB_DATA_TYPE_UINT:
+ return "UINT";
+
case TDengineDataType.TSDB_DATA_TYPE_BIGINT:
return "LONG";
+ case TDengineDataType.TSDB_DATA_TYPE_UBIGINT:
+ return "ULONG";
+
case TDengineDataType.TSDB_DATA_TYPE_FLOAT:
return "FLOAT";
diff --git a/src/Maikebing.Data.Taos/TaosCommand.cs b/src/Maikebing.Data.Taos/TaosCommand.cs
index 9d01897ff4b489962fa72576e559f710cc642ce1..699364ad0a2f43c99f6b507a0b861888f9e9d8c8 100644
--- a/src/Maikebing.Data.Taos/TaosCommand.cs
+++ b/src/Maikebing.Data.Taos/TaosCommand.cs
@@ -298,7 +298,7 @@ public override void Prepare()
Debug.WriteLine($"_commandText:{_commandText}");
#endif
var _endcommandtext = _commandText;
- if ( _parameters.IsValueCreated && _commandText?.ToLower().TrimStart().StartsWith("insert")==true)
+ if ( _parameters.IsValueCreated /*&& _commandText?.ToLower().TrimStart().StartsWith("insert")==true*/)
{
var pms = _parameters.Value;
for (int i = 0; i < pms.Count; i++)
diff --git a/src/Maikebing.Data.Taos/TaosDataReader.cs b/src/Maikebing.Data.Taos/TaosDataReader.cs
index 21fc802277b4d8bbeccf1a3a97a28ca2380d0533..dc07756fc90b6c5d70cbd345cfc6ad65adf0e274 100644
--- a/src/Maikebing.Data.Taos/TaosDataReader.cs
+++ b/src/Maikebing.Data.Taos/TaosDataReader.cs
@@ -207,17 +207,27 @@ public override Type GetFieldType(int ordinal)
type = typeof(bool);
break;
case TDengineDataType.TSDB_DATA_TYPE_TINYINT:
+ case TDengineDataType.TSDB_DATA_TYPE_UTINYINT:
type = typeof(byte);
break;
case TDengineDataType.TSDB_DATA_TYPE_SMALLINT:
type = typeof(short);
break;
+ case TDengineDataType.TSDB_DATA_TYPE_USMALLINT:
+ type = typeof(ushort);
+ break;
case TDengineDataType.TSDB_DATA_TYPE_INT:
type = typeof(int);
break;
+ case TDengineDataType.TSDB_DATA_TYPE_UINT:
+ type = typeof(uint);
+ break;
case TDengineDataType.TSDB_DATA_TYPE_BIGINT:
type = typeof(long);
break;
+ case TDengineDataType.TSDB_DATA_TYPE_UBIGINT:
+ type = typeof(ulong);
+ break;
case TDengineDataType.TSDB_DATA_TYPE_FLOAT:
type = typeof(float);
break;
@@ -341,6 +351,13 @@ public virtual TimeSpan GetTimeSpan(int ordinal)
/// The value of the column.
public override short GetInt16(int ordinal) => (short)GetValue(ordinal);
+ ///
+ /// Gets the value of the specified column as a .
+ ///
+ /// The zero-based column ordinal.
+ /// The value of the column.
+ public ushort GetUInt16(int ordinal) => (ushort)GetValue(ordinal);
+
///
/// Gets the value of the specified column as a .
///
@@ -348,6 +365,13 @@ public virtual TimeSpan GetTimeSpan(int ordinal)
/// The value of the column.
public override int GetInt32(int ordinal) => (int)GetValue(ordinal);
+ ///
+ /// Gets the value of the specified column as a .
+ ///
+ /// The zero-based column ordinal.
+ /// The value of the column.
+ public uint GetUInt32(int ordinal) => (uint)GetValue(ordinal);
+
///
/// Gets the value of the specified column as a .
///
@@ -355,6 +379,13 @@ public virtual TimeSpan GetTimeSpan(int ordinal)
/// The value of the column.
public override long GetInt64(int ordinal) => (long)GetValue(ordinal);
+ ///
+ /// Gets the value of the specified column as a .
+ ///
+ /// The zero-based column ordinal.
+ /// The value of the column.
+ public ulong GetUInt64(int ordinal) => (ulong)GetValue(ordinal);
+
///
/// Gets the value of the specified column as a .
///
@@ -504,6 +535,7 @@ public override object GetValue(int ordinal)
result = v1;
break;
case TDengineDataType.TSDB_DATA_TYPE_TINYINT:
+ case TDengineDataType.TSDB_DATA_TYPE_UTINYINT:
byte v2 = Marshal.ReadByte(data);
result = v2;
break;
@@ -511,14 +543,26 @@ public override object GetValue(int ordinal)
short v3 = Marshal.ReadInt16(data);
result = v3;
break;
+ case TDengineDataType.TSDB_DATA_TYPE_USMALLINT:
+ ushort v12 = (ushort)Marshal.ReadInt16(data);
+ result = v12;
+ break;
case TDengineDataType.TSDB_DATA_TYPE_INT:
int v4 = Marshal.ReadInt32(data);
result = v4;
break;
+ case TDengineDataType.TSDB_DATA_TYPE_UINT:
+ uint v13 = (uint)Marshal.ReadInt32(data);
+ result = v13;
+ break;
case TDengineDataType.TSDB_DATA_TYPE_BIGINT:
long v5 = Marshal.ReadInt64(data);
result = v5;
break;
+ case TDengineDataType.TSDB_DATA_TYPE_UBIGINT:
+ ulong v14 = (ulong)Marshal.ReadInt64(data);
+ result = v14;
+ break;
case TDengineDataType.TSDB_DATA_TYPE_FLOAT:
float v6 = (float)Marshal.PtrToStructure(data, typeof(float));
result = v6;