00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00025 #include "Sequence.h"
00026 #include <rcudb/Server.h>
00027 #include <rcudb/Sql.h>
00028 #include <rcudb/Row.h>
00029 #include <rcudb/Result.h>
00030
00031
00032 int
00033 RcuConf::Sequence::Increment(RcuDb::Server& server)
00034 {
00035 int ret = -1;
00036
00037
00038 RcuDb::Sql sql1;
00039 sql1 << "SELECT * FROM Sequence";
00040 RcuDb::Result* res = server.Query(sql1);
00041 if (!res) return ret;
00042
00043
00044 RcuDb::Row* row = 0;
00045 while ((row = res->Next())) row->Field(0, ret);
00046 if (ret < 0) return ret;
00047
00048
00049
00050 RcuDb::Sql sql2;
00051 sql2 << "UPDATE Sequence SET id=" << ret + 1;
00052 if (!server.Exec(sql2)) return -1;
00053
00054
00055 ret++;
00056 return ret;
00057 }
00058
00059
00060
00061 bool
00062 RcuConf::Sequence::Create(RcuDb::Server& server)
00063 {
00064 RcuDb::Sql sql;
00065 sql << "CREATE TABLE Sequence ("
00066 << "id INT KEY)";
00067 bool ret = server.Exec(sql);
00068 if (!ret) return ret;
00069
00070 RcuDb::Sql sql2;
00071 sql2 << "INSERT INTO Sequence SET id=0";
00072 ret = server.Exec(sql2);
00073 return ret;
00074 }
00075
00076
00077 bool
00078 RcuConf::Sequence::Drop(RcuDb::Server& server)
00079 {
00080 RcuDb::Sql sql = "DROP TABLE Sequence";
00081 return server.Exec(sql);
00082 }
00083
00084
00085
00086
00087