Skip to content

Commit 5b89156

Browse files
committed
configDir参数增加文件是否存在判断和外部配置的建议 #234
1 parent 6ecd4fd commit 5b89156

File tree

6 files changed

+199
-142
lines changed

6 files changed

+199
-142
lines changed

src/Example/Program.cs

Lines changed: 109 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -31,115 +31,115 @@ static void Main(string[] args)
3131
Port = 6030
3232

3333
};
34-
//Example for ADO.Net
35-
using (var connection = new TaosConnection(builder.ConnectionString))
36-
{
37-
connection.Open();
38-
Console.WriteLine("ServerVersion:{0}", connection.ServerVersion);
39-
connection.DatabaseExists(database);
40-
Console.WriteLine("create {0} {1}", database, connection.CreateCommand($"create database {database};").ExecuteNonQuery());
41-
Console.WriteLine("create table t {0} {1}", database, connection.CreateCommand($"create table {database}.t (ts timestamp, cdata binary(255));").ExecuteNonQuery());
42-
Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery());
43-
Console.WriteLine("create {0} {1}", database, connection.CreateCommand($"use {database};").ExecuteNonQuery());
44-
45-
Console.WriteLine("单表插入一行数据 {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery());
46-
Thread.Sleep(100);
47-
Console.WriteLine("单表插入多行数据 {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 101) ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds + 1)}, 992);").ExecuteNonQuery());
48-
connection.ChangeDatabase(database);
49-
BindParamBatch(connection);
50-
51-
Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.AddMonths(-1).Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 20);").ExecuteNonQuery());
52-
var cmd_select = connection.CreateCommand();
53-
cmd_select.CommandText = $"select * from {database}.t;";
54-
var reader = cmd_select.ExecuteReader();
55-
56-
int index = reader.GetOrdinal("cdata");
57-
if (reader.Read())
58-
{
59-
var ts = reader.GetDateTime("ts");
60-
}
61-
Console.WriteLine($"cdata index at {index}");
62-
Console.WriteLine(cmd_select.CommandText);
63-
Console.WriteLine("");
64-
ConsoleTableBuilder.From(reader.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine();
65-
66-
connection.ChangeDatabase(database);
67-
Console.WriteLine("");
68-
connection.CreateCommand($"CREATE TABLE datas (reportTime timestamp, type int, bufferedEnd bool, address nchar(64), parameter nchar(64), `value` nchar(64)) TAGS (boxCode nchar(64), machineId int);").ExecuteNonQuery();
69-
connection.CreateCommand($"INSERT INTO data_history_67 USING datas TAGS ('mongo', 67) values ( 1608173534840, 2 ,false ,'Channel1.窑.烟囱温度', '烟囱温度' ,'122.00' );").ExecuteNonQuery();
70-
var cmd_datas = connection.CreateCommand();
71-
cmd_datas.CommandText = $"SELECT reportTime,type,bufferedEnd,address,parameter,`value` FROM {database}.data_history_67 LIMIT 100";
72-
var readerdatas = cmd_datas.ExecuteReader();
73-
Console.WriteLine(cmd_datas.CommandText);
74-
Console.WriteLine("");
75-
ConsoleTableBuilder.From(readerdatas.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine();
76-
Console.WriteLine("");
77-
78-
Console.WriteLine("CREATE TABLE meters ", connection.CreateCommand($"CREATE TABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupdId int);").ExecuteNonQuery());
79-
Console.WriteLine("CREATE TABLE d1001 ", connection.CreateCommand($"CREATE TABLE d1001 USING meters TAGS (\"Beijing.Chaoyang\", 2);").ExecuteNonQuery());
80-
Console.WriteLine("INSERT INTO d1001 ", connection.CreateCommand($"INSERT INTO d1001 USING METERS TAGS(\"Beijng.Chaoyang\", 2) VALUES(now, 10.2, 219, 0.32);").ExecuteNonQuery());
81-
Console.WriteLine("DROP TABLE {0} {1}", database, connection.CreateCommand($"DROP TABLE {database}.t;").ExecuteNonQuery());
82-
Console.WriteLine("DROP DATABASE {0} {1}", database, connection.CreateCommand($"DROP DATABASE {database};").ExecuteNonQuery());
83-
connection.CreateCommand("DROP DATABASE IF EXISTS IoTSharp").ExecuteNonQuery();
84-
connection.CreateCommand("CREATE DATABASE IoTSharp KEEP 365d;").ExecuteNonQuery();
85-
connection.ChangeDatabase("IoTSharp");
86-
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();
87-
var devid1 = $"{Guid.NewGuid():N}";
88-
var devid2 = $"{Guid.NewGuid():N}";
89-
var devid3 = $"{Guid.NewGuid():N}";
90-
var devid4 = $"{Guid.NewGuid():N}";
91-
DateTime dt = DateTime.Now;
92-
UploadTelemetryData(connection, devid1, "1#air-compressor-two-level-discharge-temperature", 1000);
93-
UploadTelemetryData(connection, devid2, "1#air-compressor-load-rate", 1000);
94-
Console.WriteLine("");
95-
Console.WriteLine("");
96-
Console.WriteLine("");
97-
DateTime dt2 = DateTime.Now;
98-
UploadTelemetryDataPool(connection, devid3, "1#air-compressor-two-level-discharge-temperature1", 1000);
99-
UploadTelemetryDataPool(connection, devid4, "1#air-compressor-load-rate1", 1000);
100-
var t1 = DateTime.Now.Subtract(dt).TotalSeconds;
101-
var t2 = DateTime.Now.Subtract(dt2).TotalSeconds;
102-
Console.WriteLine("Done");
103-
Thread.Sleep(TimeSpan.FromSeconds(1));
104-
Console.WriteLine($"UploadTelemetryData 耗时:{t1}");
105-
Console.WriteLine($"UploadTelemetryDataPool 耗时:{t2}");
106-
Thread.Sleep(TimeSpan.FromSeconds(2));
107-
var reader2 = connection.CreateCommand("select last_row(*) from telemetrydata group by deviceid,keyname ;").ExecuteReader();
108-
ConsoleTableBuilder.From(reader2.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine();
109-
var reader3 = connection.CreateCommand("select * from telemetrydata;").ExecuteReader();
110-
List<string> list = new List<string>();
111-
while (reader3.Read())
112-
{
113-
list.Add(reader3.GetString("keyname"));
114-
}
115-
116-
var k = list.GroupBy(e => e);
117-
var dic = k.ToDictionary(en => en.Key, en => en.ToList());
118-
dic.Keys.ToList().ForEach(k =>
119-
{
120-
Console.WriteLine(k);
121-
ConsoleTableBuilder.From(dic[k]).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine(TableAligntment.Center);
122-
});
123-
124-
125-
126-
BulkInsertLines(connection);
127-
128-
BulkInsertJsonString(connection);
129-
130-
BulkInsertByJsonAndTags(connection);
131-
132-
BulkInsertWithJson_BuildJson(connection);
133-
134-
Console.WriteLine("DROP DATABASE IoTSharp", database, connection.CreateCommand($"DROP DATABASE IoTSharp;").ExecuteNonQuery());
135-
136-
137-
138-
connection.Close();
139-
140-
141-
142-
}
34+
////Example for ADO.Net
35+
//using (var connection = new TaosConnection(builder.ConnectionString))
36+
//{
37+
// connection.Open();
38+
// Console.WriteLine("ServerVersion:{0}", connection.ServerVersion);
39+
// connection.DatabaseExists(database);
40+
// Console.WriteLine("create {0} {1}", database, connection.CreateCommand($"create database {database};").ExecuteNonQuery());
41+
// Console.WriteLine("create table t {0} {1}", database, connection.CreateCommand($"create table {database}.t (ts timestamp, cdata binary(255));").ExecuteNonQuery());
42+
// Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery());
43+
// Console.WriteLine("create {0} {1}", database, connection.CreateCommand($"use {database};").ExecuteNonQuery());
44+
45+
// Console.WriteLine("单表插入一行数据 {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery());
46+
// Thread.Sleep(100);
47+
// Console.WriteLine("单表插入多行数据 {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 101) ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds + 1)}, 992);").ExecuteNonQuery());
48+
// connection.ChangeDatabase(database);
49+
// BindParamBatch(connection);
50+
51+
// Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.AddMonths(-1).Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 20);").ExecuteNonQuery());
52+
// var cmd_select = connection.CreateCommand();
53+
// cmd_select.CommandText = $"select * from {database}.t;";
54+
// var reader = cmd_select.ExecuteReader();
55+
56+
// int index = reader.GetOrdinal("cdata");
57+
// if (reader.Read())
58+
// {
59+
// var ts = reader.GetDateTime("ts");
60+
// }
61+
// Console.WriteLine($"cdata index at {index}");
62+
// Console.WriteLine(cmd_select.CommandText);
63+
// Console.WriteLine("");
64+
// ConsoleTableBuilder.From(reader.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine();
65+
66+
// connection.ChangeDatabase(database);
67+
// Console.WriteLine("");
68+
// connection.CreateCommand($"CREATE TABLE datas (reportTime timestamp, type int, bufferedEnd bool, address nchar(64), parameter nchar(64), `value` nchar(64)) TAGS (boxCode nchar(64), machineId int);").ExecuteNonQuery();
69+
// connection.CreateCommand($"INSERT INTO data_history_67 USING datas TAGS ('mongo', 67) values ( 1608173534840, 2 ,false ,'Channel1.窑.烟囱温度', '烟囱温度' ,'122.00' );").ExecuteNonQuery();
70+
// var cmd_datas = connection.CreateCommand();
71+
// cmd_datas.CommandText = $"SELECT reportTime,type,bufferedEnd,address,parameter,`value` FROM {database}.data_history_67 LIMIT 100";
72+
// var readerdatas = cmd_datas.ExecuteReader();
73+
// Console.WriteLine(cmd_datas.CommandText);
74+
// Console.WriteLine("");
75+
// ConsoleTableBuilder.From(readerdatas.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine();
76+
// Console.WriteLine("");
77+
78+
// Console.WriteLine("CREATE TABLE meters ", connection.CreateCommand($"CREATE TABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupdId int);").ExecuteNonQuery());
79+
// Console.WriteLine("CREATE TABLE d1001 ", connection.CreateCommand($"CREATE TABLE d1001 USING meters TAGS (\"Beijing.Chaoyang\", 2);").ExecuteNonQuery());
80+
// Console.WriteLine("INSERT INTO d1001 ", connection.CreateCommand($"INSERT INTO d1001 USING METERS TAGS(\"Beijng.Chaoyang\", 2) VALUES(now, 10.2, 219, 0.32);").ExecuteNonQuery());
81+
// Console.WriteLine("DROP TABLE {0} {1}", database, connection.CreateCommand($"DROP TABLE {database}.t;").ExecuteNonQuery());
82+
// Console.WriteLine("DROP DATABASE {0} {1}", database, connection.CreateCommand($"DROP DATABASE {database};").ExecuteNonQuery());
83+
// connection.CreateCommand("DROP DATABASE IF EXISTS IoTSharp").ExecuteNonQuery();
84+
// connection.CreateCommand("CREATE DATABASE IoTSharp KEEP 365d;").ExecuteNonQuery();
85+
// connection.ChangeDatabase("IoTSharp");
86+
// 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();
87+
// var devid1 = $"{Guid.NewGuid():N}";
88+
// var devid2 = $"{Guid.NewGuid():N}";
89+
// var devid3 = $"{Guid.NewGuid():N}";
90+
// var devid4 = $"{Guid.NewGuid():N}";
91+
// DateTime dt = DateTime.Now;
92+
// UploadTelemetryData(connection, devid1, "1#air-compressor-two-level-discharge-temperature", 1000);
93+
// UploadTelemetryData(connection, devid2, "1#air-compressor-load-rate", 1000);
94+
// Console.WriteLine("");
95+
// Console.WriteLine("");
96+
// Console.WriteLine("");
97+
// DateTime dt2 = DateTime.Now;
98+
// UploadTelemetryDataPool(connection, devid3, "1#air-compressor-two-level-discharge-temperature1", 1000);
99+
// UploadTelemetryDataPool(connection, devid4, "1#air-compressor-load-rate1", 1000);
100+
// var t1 = DateTime.Now.Subtract(dt).TotalSeconds;
101+
// var t2 = DateTime.Now.Subtract(dt2).TotalSeconds;
102+
// Console.WriteLine("Done");
103+
// Thread.Sleep(TimeSpan.FromSeconds(1));
104+
// Console.WriteLine($"UploadTelemetryData 耗时:{t1}");
105+
// Console.WriteLine($"UploadTelemetryDataPool 耗时:{t2}");
106+
// Thread.Sleep(TimeSpan.FromSeconds(2));
107+
// var reader2 = connection.CreateCommand("select last_row(*) from telemetrydata group by deviceid,keyname ;").ExecuteReader();
108+
// ConsoleTableBuilder.From(reader2.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine();
109+
// var reader3 = connection.CreateCommand("select * from telemetrydata;").ExecuteReader();
110+
// List<string> list = new List<string>();
111+
// while (reader3.Read())
112+
// {
113+
// list.Add(reader3.GetString("keyname"));
114+
// }
115+
116+
// var k = list.GroupBy(e => e);
117+
// var dic = k.ToDictionary(en => en.Key, en => en.ToList());
118+
// dic.Keys.ToList().ForEach(k =>
119+
// {
120+
// Console.WriteLine(k);
121+
// ConsoleTableBuilder.From(dic[k]).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine(TableAligntment.Center);
122+
// });
123+
124+
125+
126+
// BulkInsertLines(connection);
127+
128+
// BulkInsertJsonString(connection);
129+
130+
// BulkInsertByJsonAndTags(connection);
131+
132+
// BulkInsertWithJson_BuildJson(connection);
133+
134+
// Console.WriteLine("DROP DATABASE IoTSharp", database, connection.CreateCommand($"DROP DATABASE IoTSharp;").ExecuteNonQuery());
135+
136+
137+
138+
// connection.Close();
139+
140+
141+
142+
//}
143143
UseTaosEFCore(builder);
144144

145145
}

src/IoTSharp.Data.Taos/Driver/TaosMultiBind.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public static TAOS_MULTI_BIND MultiBindTinyInt(sbyte?[] arr)
6565

6666
for (int i = 0; i < elementCount; i++)
6767
{
68-
Byte[] toByteArr = BitConverter.GetBytes(arr[i] ?? sbyte.MinValue);
68+
Byte[] toByteArr = BitConverter.GetBytes((short)(arr[i] ?? sbyte.MinValue));
6969

7070
//set TAOS_MULTI_BIND.buffer
7171
Marshal.WriteByte(c_tinyint_ptr, typeSize * i, toByteArr[0]);

src/IoTSharp.Data.Taos/IoTSharp.Data.Taos.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
IoTSharp.Data.Taos.TaosParameter
1717
IoTSharp.Data.Taos.TaosTransaction
1818
</Description>
19-
<TargetFrameworks>net5;net6;net4.6;netstandard2.0</TargetFrameworks>
19+
<TargetFrameworks>net6;net7;net4.6;netstandard2.0</TargetFrameworks>
2020
<LangVersion>10</LangVersion>
2121
<PackageTags>Taos;Data;ADO.NET;Entity Framework,;EF; Core;Data O/RM,;entity-framework-core;TDengine;IoTSharp</PackageTags>
2222

src/IoTSharp.Data.Taos/TaosCommand.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ private TaosDataReader ExecuteReader(CommandBehavior behavior,IntPtr _taos)
436436
else
437437
{
438438
ptr= TDengine.Query(_taos, _commandText);
439-
if (ptr != IntPtr.Zero )
439+
if (ptr != IntPtr.Zero)
440440
{
441441
var code = TDengine.ErrorNo(ptr);
442442
if (code != 0)
@@ -448,6 +448,15 @@ private TaosDataReader ExecuteReader(CommandBehavior behavior,IntPtr _taos)
448448
_affectRows = TDengine.AffectRows(ptr);
449449
}
450450
}
451+
else
452+
{
453+
var code = TDengine.ErrorNo(_taos);
454+
var xc = new TaosErrorResult()
455+
{
456+
Code = code,
457+
Error = TDengine.Error(_taos)
458+
};
459+
}
451460
}
452461
if (_affectRows>=0)
453462
{

0 commit comments

Comments
 (0)