summaryrefslogtreecommitdiff
path: root/Aktywator/Sql.cs
blob: cf0eb383d4af27e4b6bdd465e950ed513f249099 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using System.Collections.Generic;
using System.Text;

using System.Data.OleDb;
using data = System.Data.OleDb.OleDbDataReader;

namespace Aktywator
{
    class OleDbRowMissingException : Exception
    {
    }

    class Sql
    {
        private OleDbConnection connection;

        public Sql(string filename)
        {
            string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" + filename + ";";
            connection = new OleDbConnection(connStr);
            connection.Open();
        }

        public void close()
        {
            connection.Close();
        }

        public bool isOpen()
        {
            if (connection == null) return false;
            else return connection.State == System.Data.ConnectionState.Open;
        }

        public int query(string q)
        {
            OleDbCommand cmd = new OleDbCommand(q, connection);
            return cmd.ExecuteNonQuery();
        }
        public string selectOne(string q, bool checkForRow = false)
        {
            OleDbCommand cmd = new OleDbCommand(q, connection);
            object o = cmd.ExecuteScalar();
            if (o == null) // it's null if the row does not exist, it'd be DBNull.Value if NULL was the value in existing row
            {
                if (!checkForRow)
                {
                    return "";
                }
                throw new OleDbRowMissingException();
            }
            return o.ToString();
        }
        public data select(string q)
        {
            OleDbCommand cmd = new OleDbCommand(q, connection);
            return cmd.ExecuteReader();
        }

        public bool checkTableExists(string tableName)
        {
            try
            {
                selectOne("select count(*) from " + tableName);
            }
            catch (OleDbException)
            {
                return false;
            }
            return true;
        }

        public bool checkFieldExists(string tableName, string fieldName)
        {
            try
            {
                selectOne("select " + fieldName + " from " + tableName);
            }
            catch (OleDbException)
            {
                return false;
            }
            return true;
        }
    }
}