Exemple #1
0
 /// <summary>
 /// Execute statement
 /// </summary>
 /// <returns>LastResult</returns>
 public int ExecuteStep()
 {
     // Execute the statement
     LastResult = Sqlite3.sqlite3_step(vm);
     return(LastResult);
 }
Exemple #2
0
        // private function for reading rows and creating table and columns
        private int ReadNextRow(Vdbe vm, DataTable table)
        {
            int columnCount = table.Columns.Count;

            if (columnCount == 0)
            {
                if ((columnCount = ReadColumnNames(vm, table)) == 0)
                {
                    return(Sqlite3.SQLITE_ERROR);
                }
            }

            int resultType;

            if ((resultType =
#if NET_35
                     Sqlite3.Step
#else
                     Sqlite3.sqlite3_step
#endif
                         (vm)) == Sqlite3.SQLITE_ROW)
            {
                object[] columnValues = new object[columnCount];

                for (int i = 0; i < columnCount; i++)
                {
                    int columnType =
#if NET_35
                        Sqlite3.ColumnType
#else
                        Sqlite3.sqlite3_column_type
#endif
                            (vm, i);

                    switch (columnType)
                    {
                    case Sqlite3.SQLITE_INTEGER:
                    {
                        table.Columns[i].DataType = typeof(Int64);
                        columnValues[i]           =
#if NET_35
                            Sqlite3.ColumnInt
#else
                            Sqlite3.sqlite3_column_int
#endif
                                (vm, i);

                        break;
                    }

                    case Sqlite3.SQLITE_FLOAT:
                    {
                        table.Columns[i].DataType = typeof(Double);
                        columnValues[i]           =
#if NET_35
                            Sqlite3.ColumnDouble
#else
                            Sqlite3.sqlite3_column_double
#endif
                                (vm, i);

                        break;
                    }

                    case Sqlite3.SQLITE_TEXT:
                    {
                        table.Columns[i].DataType = typeof(String);
                        columnValues[i]           =
#if NET_35
                            Sqlite3.ColumnText
#else
                            Sqlite3.sqlite3_column_text
#endif
                                (vm, i);

                        break;
                    }

                    case Sqlite3.SQLITE_BLOB:
                    {
                        table.Columns[i].DataType = typeof(Byte[]);
                        columnValues[i]           =
#if NET_35
                            Sqlite3.ColumnBlob
#else
                            Sqlite3.sqlite3_column_blob
#endif
                                (vm, i);

                        break;
                    }

                    default:
                    {
                        table.Columns[i].DataType = null;
                        columnValues[i]           = "";
                        break;
                    }
                    }
                }
                table.Rows.Add(columnValues);
            }
            return(resultType);
        }