Exemple #1
0
 /// <summary>
 /// 查询条件
 /// </summary>
 /// <param name="sqlTable">数据库表格操作工具</param>
 /// <param name="sqlStream">SQL表达式流</param>
 /// <param name="query"></param>
 internal unsafe void WriteWhere(Table sqlTable, CharStream sqlStream, ref SelectQuery <modelType> query)
 {
     if (!Where.IsWhereTrue)
     {
         sqlStream.AddSize(6 * sizeof(char));
         int length = sqlStream.Length;
         sqlTable.Client.GetSql(Where.Expression, sqlStream, ref query);
         if (length == sqlStream.Length)
         {
             sqlStream.Data.CurrentIndex -= 6 * sizeof(char);
         }
         else
         {
             byte *where = (byte *)(sqlStream.Char + length);
             *(uint *)(where - sizeof(uint))     = 'e' + (' ' << 16);
             *(uint *)(where - sizeof(uint) * 2) = 'e' + ('r' << 16);
             *(uint *)(where - sizeof(uint) * 3) = 'w' + ('h' << 16);
         }
     }
 }