Пример #1
0
/**************************************************************************************
  Function:       init_database()
  Description:    初始化数据库
  Input:          
                  
  Output:         
  Return:       0:成功,-1打开数据库失败 ,-2建数据库表失败     
  Others:         
***************************************************************************************/
int init_database()
{
	int result;
    //sqlite3 * db;
    int ret = 0;
    //创建一表,表名叫video_conf
    //const char *create_table_sql="create table if not exists video_conf(id int primary key,ipaddr varchar(60),rtspport varchar(20), httpport varchar(20),name varchar(50),password varchar(50),aliases nvarchar(100),indexid varchar(10),roomid varchar(10),ipc_status varchar(10)),DomainName nvarchar(100),SerialNumber nvarchar(100)";
    const char *create_table_sql="create table if not exists video_conf(id int primary key,ipaddr varchar(60),rtspport varchar(20),\
                                                httpport varchar(20),name varchar(50),password varchar(50),aliases nvarchar(100),indexid varchar(10),roomid varchar(10),ipc_status varchar(10),\
                                                DomainName nvarchar(100),SerialNumber nvarchar(100))";

	char* errmsg=NULL;

    //result=sqlite3_open("video_conf.db",&db);
    result=sqlite3_open(ipc_conf_database,&db);
	if(result !=SQLITE_OK)
	{
		//数据库打开失败
        //printf("open sqlite db faile\r\n");
        printf("<p>addipc open sqlite db faile</p>");
		ret = -1;
	}
    
    //建表  
    result = sqlite3_exec(db,create_table_sql, NULL, NULL, &errmsg);
	if(result != SQLITE_OK )  
	{  
		 //printf("error:%d,reasion:%s\n",result,errmsg); 
         printf("<p>error%d,reasion:%s</p>",result,errmsg);
         ret = -2;
	} 
    sqlite3_free(errmsg);
    return ret;
}
Пример #2
0
int create_db_objects(void){
    static char *isTableExist;
    isTableExist = (char *)malloc(sizeof(char)*16);

    char *query = NULL;

    sqlite3 *db;
    sqlite3_open("/etc/sysconfig/pdb/rewind.db",&db);

    query = (char *)malloc(sizeof(char)*4096);
    memset(query,0,sizeof(char)*4096);

    strncpy(query,"SELECT COUNT(*) FROM sqlite_master where type='table' and name='rewind'",sizeof(char)*4095);
    sqlite3_exec(db,query,chk_table_exists_callback,isTableExist,NULL);

    if(strcmp(isTableExist,"0") == 0){
        memset(query,0,sizeof(char)*4096);
        strncpy(query," \
               CREATE TABLE rewind ( \
                 path varchar(256) NOT NULL PRIMARY KEY, \
                 mtime varchar(256) NOT NULL \
                 )",sizeof(char)*4095);

        sqlite3_exec(db,query,NULL,NULL,NULL);
    }
Пример #3
0
u4 createAOSTables(ADatabase& db, AString& error)
{
  AResultSet rs;
  AString query(
"CREATE TABLE `global` (\
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE,\
  `name` varchar(45) NOT NULL default '',\
  `value` varchar(1024) NOT NULL default ''\
);");

  return db.executeSQL(query, rs, error);
}
Пример #4
0
/* Create TABLE with hostname categories on BDD */
int crv_mysql_create_host_table_cat(MYSQL *sql, const char *host)
{
	string_t *str;
	string_t *esc;

	str = string_new();
	esc = string_new();

	string_ajout(str, "CREATE TABLE IF NOT EXISTS `crv_");
	string_my_escape(sql, esc, host);
	string_ajout(str, esc->str);
	string_ajout(str, "_cat`(`sha1` varchar(40) NOT NULL DEFAULT '',\
										`cat` varchar(128) NOT NULL,\
										PRIMARY KEY (`sha1`)\
										)");

	if (0 != mysql_query(sql, (const char *)str->str))
		{
			fprintf(stderr, "Echec: '%s' %s\n", str->str, mysql_error(sql));
			mysql_close(sql);
			exit(EXIT_FAILURE);
		}
	string_free(str);
	string_free(esc);
	return 0;
}
Пример #5
0
int sql_creat_db(MYSQL *conn)
{
   int ret;
   ret = mysql_query(conn, "create database goods");
   if (ret != 0) {
     printf("fail to create database\n");
     return ret;
   }

   ret = mysql_select_db(conn, "goods");
   if (ret != 0) {
     printf("fail to select database: %s\n", mysql_error(conn));
     return ret;
   }

   ret = mysql_query(conn, "create table list (name varchar(40), sell_price int unsigned, \
         origin_price int unsigned, code varchar(56), ad varchar(60))");

   if (ret != 0) {
     printf("fail to create table: %s\n", mysql_error(conn));
   }

   ret = mysql_query(conn, "alter table list add unique (name)");

   return ret;
}
Пример #6
0
/* Create TABLE with hostname on BDD */
int crv_mysql_create_host_table(MYSQL *sql, const char *host)
{
	string_t *str;
	string_t *esc;

	str = string_new();
	esc = string_new();

	string_ajout(str, "CREATE TABLE IF NOT EXISTS `crv_");
	string_my_escape(sql, esc, host);
	string_ajout(str, esc->str);
	string_ajout(str, "`(`id` int(11) NOT NULL AUTO_INCREMENT,\
  									`sha1` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\
										`size` int(11) NOT NULL,\
										`name` TEXT,\
										`date_file` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\
										PRIMARY KEY (`id`),\
										UNIQUE KEY `sha1` (`sha1`)\
										)");

	if (0 != mysql_query(sql, (const char *)str->str))
		{
			fprintf(stderr, "Echec: '%s' %s\n", str->str, mysql_error(sql));
			mysql_close(sql);
			exit(EXIT_FAILURE);
		}
	
	string_free(str);
	string_free(esc);
	return 0;
}
Пример #7
0
void CUpdateDBThread::DoUpdateDB()
{
	CString strSQL;

	//如果表不存在则创建

	// 2011/07/15-8201-gxx: 本地消费表,保存本地用户结账后的信息
	if (!TableExists(_T("LocalConsume")))
	{
		IBA_LOG0(_T("create table LocalConsume"));

		strSQL.Empty();

		strSQL = _T("CREATE TABLE `LocalConsume` (\
			`submitTime` datetime NOT NULL,\
			`netBarId` smallint(6) NOT NULL default '0',\
			`refNo` int(11) NOT NULL default '0',\
			`serialNo` int(11) default NULL,\
			`serialNum` varchar(20) default NULL,\
			`name` varchar(20) default NULL,\
			`idNumber` varchar(50) default NULL,\
			`memberId` int(11) default NULL,\
			`creditAmount` int(11) default NULL,\
			`consumeAmount` int(11) default NULL,\
			`returnAmount` int(11) default NULL,\
			`checkinTime` datetime default NULL,\
			`checkoutTime` datetime default NULL,");
		strSQL += _T("\
			`termId` varchar(8) default NULL,\
			`ClassId` tinyint(4) default '0',\
			`PayType` tinyint(4) default '0',\
			`PCClass` tinyint(4) default '0',\
			`timeConsume` int(11) default NULL,\
			`operator` varchar(30) default NULL,\
			`dataStatus` tinyint(4) default NULL,\
			`checkData` varchar(32) default NULL,\
			PRIMARY KEY  (`submitTime`,`netBarId`,`refNo`),\
			KEY `lc_serialnum` (`serialNum`),\
			KEY `lc_memberId` (`memberId`),\
			KEY `lc_termId` (`termId`),\
			KEY `lc_name` (`name`),\
			KEY `lc_idnumber` (`idNumber`)\
			) ENGINE=InnoDB DEFAULT CHARSET=gbk");

		ExecuteSQL(strSQL);
	}
Пример #8
0
void SQL_Devices::create_users_table( )
{
    bool exists = sql_devices.users_table_exists();
    if (exists)
    {
        //printf("TABLE Already Exists\n");
        return ;
    }

  query_string = "CREATE TABLE `my_devices` (	\
  `_id` int(11) NOT NULL AUTO_INCREMENT,		\
  `login_count` int(11) NOT NULL,				\
  `last_login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,	\
  `user_id` int(11) NOT NULL,					\
  `regex` text COMMENT 'Contains a regex for matching user spoken name.',	\
  `preferred_name` text NOT NULL COMMENT 'Such as \"Steves phone\" rather than dev_name \"Sensation\"',	\
  `device_type` text NOT NULL COMMENT 'Phone, Humanoid, Tablet, Reader, Playstation,Wii, etc.',	\
  `hostname` text NOT NULL,			\
  `IP_address` text NOT NULL,		\
  `Mac_address` text NOT NULL,		\
  `SerialNumber` text NOT NULL COMMENT 'This was not available in Android \"Build.SERIALNUMBER\"',	\
  `phone_number` varchar(20) NOT NULL,	\
  `Operating_System` varchar(20) NOT NULL COMMENT 'Android/iPhone/WindowsCE/',	\
  `Board` text NOT NULL,			\
  `Bootloader` text NOT NULL,		\
  `Brand` text NOT NULL,			\
  `CPU_ABI` text NOT NULL,			\
  `Display` text NOT NULL,			\
  `Hardware` text NOT NULL,			\
  `Manufacturer` text NOT NULL,		\
  `Model` text NOT NULL,			\
  `Tags` text NOT NULL,				\
  PRIMARY KEY (`_id`)				\
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;";

	printf("CREATING TABLE: %s\n", query_string.c_str() );
    query(false);
} 
Пример #9
0
void MySQLCreateSchema()
{
	//void MySQLRecordStatTotalMoney(int total_money):
	if(mysql_query(mysqlcon, "CREATE TABLE `player_money_total` ( \
							 `idplayer_money_total` int(11) NOT NULL AUTO_INCREMENT, \
							 `player_money_total_time` datetime NOT NULL, \
							 `player_money_total_amount` int(11) NOT NULL, \
							 PRIMARY KEY (`idPlayerMoneyTotal`) \
							 ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;"))
	{

		dprintf("unable to create table playermoneytotal");
	}
	
	//MySQLRecordPlayerLogin(session_node *s)
	if(mysql_query(mysqlcon, "CREATE TABLE `player_logins` ( \
							 `idplayer_logins` int(11) NOT NULL AUTO_INCREMENT, \
							 `player_logins_account_name` varchar(45) NOT NULL, \
							 `player_logins_character_name` varchar(45) NOT NULL, \
							 `player_logins_IP` varchar(45) NOT NULL, \
							 `player_logins_time` datetime NOT NULL, \
							 PRIMARY KEY (`idplayer_logins`) \
							 ) ENGINE=InnoDB DEFAULT CHARSET=latin1; "))
	{
		dprintf("unable to create table player_logins", mysql_error(mysqlcon));
	}

	if(mysql_query(mysqlcon, "CREATE TABLE `money_created` ( \
							 `idmoney_created` int(11) NOT NULL AUTO_INCREMENT, \
							 `money_created_amount` int(11) NOT NULL, \
							 `money_created_time` datetime NOT NULL, \
							 PRIMARY KEY (`idmoney_created`) \
							 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;"))
	{
		dprintf("unable to create table money_created", mysql_error(mysqlcon));
	}

	if(mysql_query(mysqlcon, "CREATE TABLE `player_damaged` ( \
							 `idplayer_damaged` int(11) NOT NULL AUTO_INCREMENT, \
							 `player_damaged_who` varchar(45) NOT NULL, \
							 `player_damaged_attacker` varchar(45) NOT NULL, \
							 `player_damaged_aspell` int(11) NOT NULL, \
							 `player_damaged_atype` int(11) NOT NULL, \
							 `player_damaged_applied` int(11) NOT NULL, \
							 `player_damaged_original` int(11) NOT NULL, \
							 `player_damaged_weapon` varchar(45) NOT NULL, \
							 `player_damaged_time` datetime NOT NULL, \
							 PRIMARY KEY (`idplayer_damaged`) \
							 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;"))
	{
		dprintf("unable to create table player_damaged", mysql_error(mysqlcon));
	}
}
Пример #10
0
gint alter_rtr1(class alter_rtr_data *data)
{
char strsql[1000];

//1
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

time(&data->vremn);

iceb_printw(iceb_u_toutf("Открываем базу\n"),data->buffer,data->view);

if(sql_openbaz(&bd,data->imabaz.ravno(),data->host.ravno(),"root",data->parol.ravno()) != 0)
 {
  iceb_eropbaz(data->imabaz.ravno(),0,"",1);

  gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

  gtk_widget_grab_focus(data->knopka);
  gtk_widget_show_all(data->window);
  return(FALSE);

 }
iceb_start_rf();

//2
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Вставляем колонку podr в таблицу Restdok.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok add podr int not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }

 }
else
 {
  iceb_printw(iceb_u_toutf("Удаляем индексы mo и datd в таблице Restdok.\n"),data->buffer,data->view);

  sprintf(strsql,"alter table Restdok drop index mo, drop index datd");

  if(sql_zap(&bd,strsql) != 0)
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
  iceb_printw(iceb_u_toutf("Добавляем индексы mo,podr и datd,podr в таблицу Restdok.\n"),data->buffer,data->view);
  sprintf(strsql,"alter table Restdok add index mo (mo,podr), add index datd (datd,podr)");
  if(sql_zap(&bd,strsql) != 0)
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }
 
iceb_printw(iceb_u_toutf("Вставляем колонку podr в таблицу Restdok1.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok1 add podr int not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//3  
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Вставляем колонку nz и mr в таблицу Restdok1.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok1 add nz smallint not null, add mr smallint not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонки в таблице уже существуют.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }

 }
else
 {
  iceb_printw(iceb_u_toutf("Удаляем индекс datd в таблице Restdok1.\n"),data->buffer,data->view);

  sprintf(strsql,"alter table Restdok1 drop index datd");

  if(sql_zap(&bd,strsql) != 0)
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }

  iceb_printw(iceb_u_toutf("Добавляем индекс  datd в таблицу Restdok1.\n"),data->buffer,data->view);
  sprintf(strsql,"alter table Restdok1 add unique datd (datd,nomd,skl,mz,kodz,nz)");
  if(sql_zap(&bd,strsql) != 0)
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }
//4
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Вставляем колонки vremz,vremo в таблицу Restdok.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok add vremz int unsigned not null, add vremo int unsigned not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонки в таблице уже существуют.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//5
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Вставляем колонки ps (процент скидки) и grup (группа) в таблицу Taxiklient.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Taxiklient add ps float not null,add grup char(10) not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонкa в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//6
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Создаём таблицу групп клиентов Grupklient.\n"),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
strcpy(strsql,"CREATE TABLE Grupklient \
(kod    char(10) not null primary key,\
naik    varchar(100) not null,\
ktoz	smallint unsigned not null,\
vrem	int unsigned not null)");
/*
0 kod   код группы
1 naik  наименование группы
2 ktoz  кто записал
3 vrem  время записи
*/
if(sql_zap(&bd,strsql) < 0)
 { 
  sprintf(strsql,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
 } 
else
  iceb_printw(iceb_u_toutf("Таблица создана !\n"),data->buffer,data->view);

//7
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Вставляем колонку ps (процент скидки) таблицу Restdok.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok add ps float not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонкa в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }


//8
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку nds в таблицу Restdok1.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok1 add nds tinyint not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//9
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку sp в таблицу Taxiklient.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Taxiklient add sp varchar(100) not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//10
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку ps в таблицу Restdok1.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok1 add ps float not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//11
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку mk в таблицу Taxiklient.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Taxiklient add mk tinyint not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//12
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку dvk в таблицу Taxiklient.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Taxiklient add dvk DATETIME not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//13
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку pl в таблицу Taxiklient.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Taxiklient add pl tinyint not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//14
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку cdg в таблицу Restvi\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restvi add cdg float(7,2) not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//15
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку denrog в таблицу Taxiklient.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Taxiklient add denrog DATE not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//16
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку kom в таблицу Taxiklient.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Taxiklient add kom VARCHAR(100) NOT NULL");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//17
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Добавляем индекс nk,datz,kodz в таблицу Restkas.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restkas add index nk1 (nk,kodz,datz)");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_KEYNAME)
   {
    iceb_printw(iceb_u_toutf("Индексы в таблице уже существуют.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//18
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Вставляем колонку mb в таблицу Taxiklient.\n"),data->buffer,data->view);

sprintf(strsql,"alter table Taxiklient add mb tinyint not null");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_FIELDNAME)
   {
    iceb_printw(iceb_u_toutf("Колонка в таблице уже существует.\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//19
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Добавляем индекс в таблицу Restdok1\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok1 add index kodz (kodz,skl,mz,ms)");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_KEYNAME)
   {
    iceb_printw(iceb_u_toutf("Индекс уже существует\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }

//20
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    
iceb_printw(iceb_u_toutf("Добавляем индекс в таблицу Restdok1\n"),data->buffer,data->view);

sprintf(strsql,"alter table Restdok1 add index skl (skl,ms,mz)");
if(sql_zap(&bd,strsql) != 0)
 {
  if(sql_nerror(&bd) == ER_DUP_KEYNAME)
   {
    iceb_printw(iceb_u_toutf("Индекс уже существует\n"),data->buffer,data->view);
   }
  else
   {
    sprintf(strsql,"Ошибка ! %d\n%s\n",sql_nerror(&bd),sql_error(&bd));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
   }
 }



/*******************************/

sql_closebaz(&bd);

iceb_printw_vr(data->vremn,data->buffer,data->view);


gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);
return(FALSE);

}
Пример #11
0
SchedRulesList::SchedRulesList(QString clockname)
{
  QString sql;
  RDSqlQuery *q;
  RDSqlQuery *q1;

  sql=QString().sprintf("create table if not exists `%s_RULES` (\
      CODE varchar(10) not null primary key,\
      MAX_ROW int unsigned,\
      MIN_WAIT int unsigned,\
      NOT_AFTER varchar(10),\
      OR_AFTER varchar(10),\
      OR_AFTER_II varchar(10))",(const char*)clockname.replace(" ","_")); 

  q=new RDSqlQuery(sql);
  if(!q->isActive()) {
    printf("SQL: %s\n",(const char *)sql);
    printf("SQL Error: %s\n",(const char *)q->lastError().databaseText());
  }
  delete q;

  sql=QString().sprintf("select CODE,DESCRIPTION from SCHED_CODES order by `CODE` asc"); 

  q=new RDSqlQuery(sql);

  itemcounter=q->size();  
  sched_code = new QString[itemcounter];
  max_row = new int[itemcounter];
  min_wait = new int[itemcounter];
  not_after = new QString[itemcounter];
  or_after = new QString[itemcounter];
  or_after_II = new QString[itemcounter];
  description = new QString[itemcounter];
    
  for (int i=0; i<itemcounter; i++){
    q->next();
    sched_code[i] = q->value(0).toString();
    description[i] = q->value(1).toString();
    sql=QString().sprintf("select MAX_ROW,MIN_WAIT,NOT_AFTER,OR_AFTER,OR_AFTER_II from %s_RULES where CODE=\"%s\"",
	(const char *)clockname.replace(" ","_"),(const char *)sched_code[i]);
    q1=new RDSqlQuery(sql);
    if(q1->first())
      {
      max_row[i] = q1->value(0).toInt();
      min_wait[i] = q1->value(1).toInt();
      not_after[i] = q1->value(2).toString();
      or_after[i] = q1->value(3).toString();
      or_after_II[i] = q1->value(3).toString();
      }
    else
      {
      max_row[i] = 1;
      min_wait[i] = 0;
      not_after[i] = "";
      or_after[i] = "";
      or_after_II[i] = "";
      }
    delete q1;
    }
  delete q;
}
Пример #12
0
#endif

// Don't forget to change the version number before changing tableInfo!
//
// ONCE AGAIN, DON'T FORGET TO INCREASE THIS VALUE
#define WP_DATABASE_VERSION "5"

// This is used for autocreating the tables
struct {
	const char *name;
	const char *create;
} tableInfo[] =
{
	{ "guilds", "CREATE TABLE guilds ( \
	serial int(11) NOT NULL default '0', \
	name varchar(255) NOT NULL default '', \
	abbreviation varchar(255) NOT NULL default '', \
	charta LONGTEXT NOT NULL, \
	website varchar(255) NOT NULL default '', \
	alignment int(2) NOT NULL default '0', \
	leader int(11) NOT NULL default '-1', \
	founded int(11) NOT NULL default '0', \
	guildstone int(11) NOT NULL default '-1', \
	PRIMARY KEY(serial) \
	);" },

	{ "guilds_members",	"CREATE TABLE guilds_members ( \
	guild int(11) NOT NULL default '0', \
	player int(11) NOT NULL default '0', \
	showsign int(1) NOT NULL default '0', \
	guildtitle varchar(255) NOT NULL default '', \
Пример #13
0
gint i_sbtaxi_r1(class i_sbtaxi_r_data *data)
{
time(&data->vremn);
char strsql[1024];
char bros[1024];
iceb_u_str repl;
//1
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

if(mysql_init(&bd) == NULL)
 {
  iceb_printw(iceb_u_toutf("Ошибка инициализации базы данных!\n"),data->buffer,data->view);

  sprintf(strsql,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
  
  gtk_label_set_text(GTK_LABEL(data->label),iceb_u_toutf("Создание базы аварийно завершено"));
  return(FALSE);


 }

if(mysql_real_connect(&bd,data->host.ravno(),"root",data->parol.ravno(),"mysql",0,NULL,0) == NULL)
 { 
  iceb_printw(iceb_u_toutf("Ошибка соединения с демоном базы данных!\n"),data->buffer,data->view);

  sprintf(strsql,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
  gtk_label_set_text(GTK_LABEL(data->label),iceb_u_toutf("Создание базы аварийно завершено"));
  return(FALSE);

 } 

iceb_printw(iceb_u_toutf("Создаем базу данных\n"),data->buffer,data->view);

//sprintf(strsql,"create database %s",data->imabaz.ravno());
sprintf(strsql,"create database %s DEFAULT CHARACTER SET '%s'",data->imabaz.ravno(),data->kodirovka.ravno());

if(sql_zap(&bd,strsql) != 0)
 {
  //База уже может быть создана
  sprintf(strsql,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
 }


iceb_printw(iceb_u_toutf("Открываем базу\n"),data->buffer,data->view);

if(sql_openbaz(&bd,data->imabaz.ravno(),data->host.ravno(),"root",data->parol.ravno()) != 0)
 {
  iceb_eropbaz(data->imabaz.ravno(),0,"",1);

  gtk_label_set_text(GTK_LABEL(data->label),iceb_u_toutf("Создание базы аварийно завершено"));

  gtk_widget_grab_focus(data->knopka);
  gtk_widget_show_all(data->window);
  return(FALSE);

 }
sprintf(strsql,"SET NAMES %s",data->kodirovka_zaprosov.ravno());
iceb_sql_zapis(strsql,1,0,data->window);
//iceb_start_rf();

//2,3
#include "gr_klient.h"

//4
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Создание таблицы водителей Taxivod !\n"),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
strcpy(strsql,"CREATE TABLE Taxivod (\
kod     char(20) not null primary key,\
fio     varchar(60) not null,\
adres   varchar(100) not null,\
telef	varchar(40) not null,\
gosn    varchar(20) not null,\
sm      smallint not null,\
ktoi    smallint unsigned not null,\
vrem    int unsigned not null)");

/*
0 kod	код
1 fio     фамилия
2 adres   адрес
3 telef	телефон
4 gosn    гос. номер машины
5 sm      0-на смене 1-не на смене
6 ktoi    кто записал
7 vrem    время записи
*/

if(sql_zap(&bd,strsql) != 0)
 { 
  sprintf(bros,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  repl.new_plus(bros);
//  repl.plus_ps(strsql);
  iceb_printw(repl.ravno_toutf(),data->buffer,data->view);
 } 
else
  iceb_printw(iceb_u_toutf("Таблица создана.\n\n"),data->buffer,data->view);

//5
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Создание таблицы кодов завершения заказов Taxikzz !\n"),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
strcpy(strsql,"CREATE TABLE Taxikzz (\
kod     smallint not null primary key,\
naik    varchar(60) not null,\
ktoi    smallint unsigned not null,\
vrem    int unsigned not null)");

/*
0 kod	код
1 naik  наименование кода
2 ktoi  кто записал
3 vrem  время записи
*/

if(sql_zap(&bd,strsql) != 0)
 { 
  sprintf(bros,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  repl.new_plus(bros);
//  repl.plus_ps(strsql);
  iceb_printw(repl.ravno_toutf(),data->buffer,data->view);
 } 
else
  iceb_printw(iceb_u_toutf("Таблица создана.\n\n"),data->buffer,data->view);

//6
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Создание таблицы заказов Taxizak !\n"),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
strcpy(strsql,"CREATE TABLE Taxizak (\
kz      smallint not null,\
kodk    varchar(20) not null,\
kv      varchar(20) not null,\
fio     varchar(60) not null,\
telef   varchar(40) not null,\
kolp    smallint not null,\
datvz   DATE not null,\
vremvz  TIME not null,\
datz    DATE not null,\
vremz   TIME not null,\
adreso  varchar(100) not null,\
adresk  varchar(100) not null,\
koment  varchar(250) not null,\
suma    float not null,\
vremzz  int unsigned not null,\
ktoi    smallint unsigned not null,\
vrem    int unsigned not null,\
zvuk    varchar(40) not null,\
index(kz,datvz,vremvz),\
index(datvz,vremvz),\
index(kodk,datvz),\
index(telef,datvz))");

/*
0  kz      код завершения
1  kodk    код клиента
2  kv      код водителя
3  fio     фамилия заказчика
4  telef   телефон клиента
5  kolp    количество пассажиров
6  datvz   дата когда нужно выполнить заказ
7  vremvz  время когда нужно выполнить заказ
8  datz    дата заказа
9  vremz   время заказа
10 adreso  адрес отуда забрать клиента
11 adresk  адрес куда отвезти
12 koment  коментарий
13 suma    сума
14 vremzz  время завершения заказа
15 ktoi    кто записал
16 vrem    время записи
17 zvuk    имя файла с записью разговора
*/

if(sql_zap(&bd,strsql) != 0)
 { 
  sprintf(bros,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  repl.new_plus(bros);
//  repl.plus_ps(strsql);
  iceb_printw(repl.ravno_toutf(),data->buffer,data->view);
 } 
else
  iceb_printw(iceb_u_toutf("Таблица создана.\n\n"),data->buffer,data->view);


//7
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Создание таблицы телефонов Taxitel !\n"),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
strcpy(strsql,"CREATE TABLE Taxitel (\
tel     varchar(20) not null primary key,\
adres   varchar(100) not null,\
ktoi    smallint unsigned not null,\
vrem    int unsigned not null)");

/*
0 tel	номер телефона
1 adres адрес
2 ktoi  кто записал
3 vrem  время записи
*/

if(sql_zap(&bd,strsql) != 0)
 { 
  sprintf(bros,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  repl.new_plus(bros);
//  repl.plus_ps(strsql);
  iceb_printw(repl.ravno_toutf(),data->buffer,data->view);
 } 
else
  iceb_printw(iceb_u_toutf("Таблица создана.\n\n"),data->buffer,data->view);

//8
iceb_pbar(data->bar,data->kolstr,++data->kolstr1);    

iceb_printw(iceb_u_toutf("Создание таблицы сальдо по клиентам Taxiklsal !\n"),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
strcpy(strsql,"CREATE TABLE Taxiklsal (\
god     smallint not null,\
kod     char(20) not null,\
saldo   double(10,2) not null,\
ktoi    smallint unsigned not null,\
vrem    int unsigned not null,\
unique(god,kod))");

/*
0 god	год 
1 kod   код клиента
2 saldo сальдо по клиенту
3 ktoi  кто записал
4 vrem  время записи
*/

if(sql_zap(&bd,strsql) != 0)
 { 
  sprintf(bros,"%d %s\n",sql_nerror(&bd),sql_error(&bd));
  repl.new_plus(bros);
//  repl.plus_ps(strsql);
  iceb_printw(repl.ravno_toutf(),data->buffer,data->view);
 } 
else
  iceb_printw(iceb_u_toutf("Таблица создана\n\n"),data->buffer,data->view);

/*Загружаем настроечные файлы в базу данных*/
iceb_alxzag(data->putnansi.ravno(),0,data->view,data->buffer,data->window);


sql_closebaz(&bd);


iceb_printw_vr(data->vremn,data->buffer,data->view);


gtk_label_set_text(GTK_LABEL(data->label),iceb_u_toutf("Создание базы завершено"));

gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);
return(FALSE);
}
Пример #14
0
void CUserQueryHiveLog::Core()
{
	std::string pchSqlPermissions ;//= "insert into rtb_hive_data";
	//char insertMysqlValue[2000];
	std::string insertMysqlValue;
	std::string createTable;
	//10000000
	std::string tableValue ="( id int(10) unsigned NOT NULL AUTO_INCREMENT ,\
							log_time datetime DEFAULT NULL ,\
							reqParams varchar(1000) DEFAULT NULL ,\
							reqAction varchar(1000) DEFAULT NULL ,\
							resultValue varchar(19800) DEFAULT NULL ,\
							queryTime bigint(20) DEFAULT NULL,\
							log_dayID bigint(20) DEFAULT NULL ,\
							log_HourID bigint(20) DEFAULT NULL ,\
							PRIMARY KEY (id)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ;";
	
	char chSource[10];
	char chProvider[10];
	char logDate[30];
	std::string strHiveDate;
	while(true) {

		strHiveDate = BdxUserQueryHiveLogGetDate();

		createTable =   "create table if not exists apigateway_hive_data_"+ strHiveDate + tableValue;
		
		//memset(insertMysqlValue,0,2000);
		memset(chSource,0,10);
		memset(chProvider,0,10);
		memset(logDate,0,30);
		pchSqlPermissions = "insert into apigateway_hive_data_" + strHiveDate +"(log_time,reqParams,reqAction,resultValue,queryTime,log_dayID,log_hourID)values";
		std::vector<HIVELOCALLOG_S>::iterator itr;
		BdxQueryHiveLogOpenFile();
		//BdxQueryHiveLogGetReport();
        time_t timep;
        time(&timep);

		#ifdef __MYSQL__
		if(!m_stMysqlServerInfoHive->GetMysqlInitState())
		{
			m_stMysqlServerInfoHive->InitMysql(g_mySqlInfoHive.m_stMysqlLinkInfo.m_pchIp,g_mySqlInfoHive.m_stMysqlLinkInfo.m_uiPort,g_mySqlInfoHive.pchUserName,g_mySqlInfoHive.pchPassWord,g_mySqlInfoHive.pchDbName);
		}
		m_stMysqlServerInfoHive->ExecuteMySql(createTable.c_str());//create table
		//printf("Line:%d,create table %s\n",__LINE__,createTable.c_str());
		LOG(DEBUG,"create table %s",createTable.c_str());

		#endif
		
        struct tm* timeinfo = localtime(&timep);
		for(u_int i = 0; i < CUserQueryWorkThreads::m_vecHiveLog.size(); ++i) {
			while(!CUserQueryWorkThreads::m_vecHiveLog[i].empty())
			{
				m_stHiveLog = CUserQueryWorkThreads::m_vecHiveLog[i].front();
							  CUserQueryWorkThreads::m_vecHiveLog[i].pop();		
				fprintf(m_pFile, "%04d-%02d-%02d %02d:%02d\t", timeinfo->tm_year + 1900, timeinfo->tm_mon + 1,timeinfo->tm_mday, timeinfo->tm_hour, timeinfo->tm_min);
				fprintf(m_pFile,"%s\t%s\t%s\t%s\t%s\t%s\n",m_stHiveLog.strReqParams.c_str(),m_stHiveLog.strAction.c_str(),m_stHiveLog.strValue.c_str(),m_stHiveLog.strQuerytime.c_str(),m_stHiveLog.strDayId.c_str(),m_stHiveLog.strHourId.c_str());

				#ifdef __MYSQL__
				sprintf(logDate, "%04d-%02d-%02d %02d:%02d",timeinfo->tm_year + 1900, timeinfo->tm_mon + 1,timeinfo->tm_mday, timeinfo->tm_hour, timeinfo->tm_min);
				
				insertMysqlValue =pchSqlPermissions + "('"+std::string(logDate)+"','" + m_stHiveLog.strReqParams +"','" + m_stHiveLog.strAction +"','" + m_stHiveLog.strValue + "','" + m_stHiveLog.strQuerytime +"','" + m_stHiveLog.strDayId + "','" + m_stHiveLog.strHourId + "');";

				//printf("Line:%d,insertMysqlValue=%s\n",__LINE__,insertMysqlValue.c_str());

                m_stMysqlServerInfoHive->ExecuteMySql(std::string("set names utf8").c_str());//set charset
                m_stMysqlServerInfoHive->ExecuteMySql((std::string("alter database ")+g_mySqlInfoHive.pchDbName+ std::string(" default character set utf8")).c_str());//set charset

				
				if(m_stMysqlServerInfoHive->ExecuteMySql(insertMysqlValue.c_str()))
				{
					LOG(DEBUG,"%s success",insertMysqlValue.c_str());
					//printf("Line:%d,Insert into mysql is success.....%s\n",__LINE__,insertMysqlValue.c_str());
				}
				else
				{
					LOG(DEBUG," %s error!!!!1",insertMysqlValue.c_str());
					//printf("Line:%d,Insert into mysql is error.....\n",__LINE__);					
				}	
				#endif
				
			}		
			//CUserQueryWorkThreads::m_vecHiveLog[i].clear();
		}
		
		fflush(m_pFile);
		//sleep(3000);
        sleep(m_stHiveLogPrm.m_uiStatisticsTime);
	}
}
Пример #15
0
/* Testing: binding of data via ct_param */
int
main(int argc, char *argv[])
{
	int errCode = 0;
	
	CS_CONTEXT *ctx;
	CS_CONNECTION *conn;
	CS_COMMAND *cmd;
	int verbose = 0;

	CS_RETCODE ret;
	CS_CHAR cmdbuf[4096];

	if (argc > 1 && (0 == strcmp(argv[1], "-v")))
		verbose = 1;

	fprintf(stdout, "%s: submit language query with variables using ct_param \n", __FILE__);
	if (verbose) {
		fprintf(stdout, "Trying login\n");
	}
	ret = try_ctlogin(&ctx, &conn, &cmd, verbose);
	if (ret != CS_SUCCEED) {
		fprintf(stderr, "Login failed\n");
		return 1;
	}

	ct_callback(ctx, NULL, CS_SET, CS_CLIENTMSG_CB, (CS_VOID *) ex_clientmsg_cb);

	ct_callback(ctx, NULL, CS_SET, CS_SERVERMSG_CB, (CS_VOID *) ex_servermsg_cb);

	strcpy(cmdbuf, "create table #ctparam_lang (id numeric identity not null, \
		name varchar(30), name2 varchar(20), age int, cost money, bdate datetime, fval float) ");

	ret = run_command(cmd, cmdbuf);

	if (ret != CS_SUCCEED) {
		fprintf(stderr, "create table failed\n");
		errCode = 1;
		goto ERR;
	}

	/* test by name */
	errCode = insert_test(conn, cmd, 1);
	/* if worked, test by position */
	if (0 == errCode)
		errCode = insert_test(conn, cmd, 0);
	query = "insert into #ctparam_lang (name,name2,age,cost,bdate,fval) values (?, ?, ?, ?, ?, ?)";
	if (0 == errCode)
		errCode = insert_test(conn, cmd, 0);

	if (verbose && (0 == errCode))
		fprintf(stdout, "lang_ct_param tests successful\n");

ERR:
	if (verbose) {
		fprintf(stdout, "Trying logout\n");
	}
	ret = try_ctlogout(ctx, conn, cmd, verbose);
	if (ret != CS_SUCCEED) {
		fprintf(stderr, "Logout failed\n");
		return 1;
	}

	return errCode;
}
Пример #16
0
void perf_statement::simpleSelect1k()
{
  logMsg("perf_statement::simpleSelect1k() - MySQL_Statement::*, MYSQL_Resultset::*");
  String varchar("");
  std::stringstream query;
  int i;

  stmt.reset(con->createStatement());
  try
  {
    TIMER_START("SELECT 1k FROM DUAL - statement");
    for (i=0; i < 50000; ++i)
    {
      res.reset(stmt->executeQuery("SELECT 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' FROM DUAL"));
      while (res->next())
      {
        varchar=res->getString(1);
        varchar=res->getString(2);
        varchar=res->getString(3);
        varchar=res->getString(4);
      }
    }
    TIMER_STOP("SELECT 1k FROM DUAL - statement");

    // Same - not buffered
    stmt->setResultSetType( sql::ResultSet::TYPE_FORWARD_ONLY );

    TIMER_START("SELECT 1k FROM DUAL - statement fw only");
    for (i=0; i < 50000; ++i)
    {
      res.reset(stmt->executeQuery("SELECT 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' FROM DUAL"));
      while (res->next())
      {
        varchar=res->getString(1);
        varchar=res->getString(2);
        varchar=res->getString(3);
        varchar=res->getString(4);
      }
    }
    TIMER_STOP("SELECT 1k FROM DUAL - statement fw only");

    // Same with prepare statements
    pstmt.reset( con->prepareStatement( "SELECT 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' FROM DUAL" ) );
    TIMER_START("SELECT 1k FROM DUAL - prepared statement");

    for (i=0; i < 50000; ++i)
    {
      res.reset(pstmt->executeQuery());
      while (res->next())
      {
        varchar=res->getString(1);
        varchar=res->getString(2);
        varchar=res->getString(3);
        varchar=res->getString(4);
      }
    }
    TIMER_STOP("SELECT 1k FROM DUAL - prepared statement");
  }
  catch (sql::SQLException &e)
  {
    logErr(e.what());
    logErr("SQLState: " + std::string(e.getSQLState()));
    fail(e.what(), __FILE__, __LINE__);
  }
}
Пример #17
0
SqlLiteTest::SqlLiteTest(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	
	QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
	QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");//添加数据库
	db.setHostName("Erric");
	db.setDatabaseName("YSQ.db");
	db.setUserName("yinshangqqing");
	db.setPassword("123456");
	if(db.open())
	{
		qDebug()<<"Database opened success !";
		QSqlQuery query;
		bool success = query.exec("create table if not exists auto\
													(id int primary key,\
													 name varchar(20),\
													address varchar(30))");
		if(success)
		{
			qDebug()<<"table create success !";
		}
		else
		{
			qDebug()<<"table create fail !";
		}
		//查询
		query.exec("select * from auto");
		QSqlRecord rec = query.record();
		qDebug()<<"auto columns count: "<<rec.count();
		//插入记录
		QString insert_sql = "insert into auto values(1,'hao','beijing'),(2,'yun','shanghai'),(3,'qing','guangzhou')";
		QString select_sql = "select * from auto";
		success = query.prepare(insert_sql);
		if(success)
		{
			qDebug()<<"insert table success !";
		}
		else
		{
			qDebug()<<"insert table fail !";
			QSqlError lastError = query.lastError();
			qDebug()<<"lastError: "<<lastError;
		}
		success = query.prepare(select_sql);
		if(success)
		{
			//qDebug()<<"datas: "<<query.prepare(select_sql);
			qDebug()<<"select table success !";
			while(query.next())
			{
				int id = query.value(0).toInt();
				QString name = query.value(1).toString();
				QString address = query.value(2).toString();
				qDebug()<<QString("%1,%2,%3").arg(id).arg(name).arg(address);
			}
		}
		else
		{
			qDebug()<<"select table fail !";
			QSqlError lastError = query.lastError();
			qDebug()<<"lastError: "<<lastError;
		}
	}
Пример #18
0
#include <stdio.h>
#include <sqlite3.h>

sqlite3 *db;

static char* dbname = "120236ly.sqlite.db";
static int n_tables = 2;
static char* tables[1024] = { "create table if not exists _120236ly (    	\
									uid char(12), 			\
									name nchar(10), 		\
									age nchar(4), 			\
									birth date, 			\
									idcard char(18), 		\
									place nchar(40), 		\
									address nchar(400), 	\
									phone varchar(20), 		\
									other nchar(200), 		\
									autflag integer default 65793, 		\
									passwd varchar(20) default '123'     \
								)", 						
								 "create table if not exists material_120236ly ( \
									  mid char(12), 		\
									  mname char(20), 		\
									  mtype char(10), 		\
									  munit char(5), 		\
									  mstock integer, 		\
									  mcomment char(100) 	\
								)",
								"create table if not exists o_120236ly ( \
									oid char(12), 			\
									odate date, 			\
Пример #19
0
# include <stdlib.h>
# include <iiapi.h>


static	void IIdemo_init();
static	void IIdemo_term();
static	void IIdemo_conn( char *, II_PTR * );
static	void IIdemo_disconn( II_PTR * );
static	void IIdemo_query( II_PTR *, II_PTR *, char *, char * );
static	void IIdemo_rollback( II_PTR  * );


static	char	procName[] = "api_demo_prbr"; 
static	char	procText[] =
"create procedure api_demo_prbr( \
    table_name varchar(32) with null, \
    column_count integer with null ) \
as declare \
    table_count integer not null; \
begin \
    if ( :table_name is null ) then \
	select table_name into :table_name from iitables; \
    endif; \
    select count(*) into :column_count from iicolumns \
	where table_name = :table_name; \
    select count(*) into :table_count from iitables; \
    return :table_count; \
end";

typedef struct 
{
unsigned char* Registro::readCampo(unsigned int index,unsigned int blockIDMD)
{
    // Terminado
    Metadata md(blockIDMD);
    unsigned int off=0;
    unsigned char* resul;

    for(int i=0; i<md.getCant_campos(); i++)
    {
        InfoMDC inf = md.readCampo(i);
        if(i==index)
        {
            // devolver reg
            int val;
            if(inf.tipo_campo==1){val=sizeof(int);}
            else if(inf.tipo_campo==2){val=sizeof(double);}
            else if(inf.tipo_campo==3){val=inf.size+1;}
            else if(inf.tipo_campo==4){val=(sizeof(int) + sizeof(int) );}
            else if(inf.tipo_campo==5){val=sizeof(bool);}
            else{
                throw SMException("Ese tipo de campo no es Soportado");
            }

            mapabits m(inf.nulls);
            if(m.getAt(i))
            {
                return 0;
            }

            resul = (unsigned char*)malloc(val);
            this->contentReg += off;
            memcpy(resul,this->contentReg,val);
            this->contentReg -= off;

            if(inf.tipo_campo == 4) // es varchar   BidV / Index
            {
                unsigned int BidV,indice;
                memcpy(&BidV,resul,sizeof(unsigned int));
                resul += sizeof(unsigned int);
                memcpy(&indice,resul,sizeof(unsigned int));

                //VARCHARRR---

                Varchar varchar(BidV);
                return varchar.selectVarchar(indice);

            }
            return resul;
        }
        else
        {
            if(inf.tipo_campo==1){off+=sizeof(int);}// es int
            else if(inf.tipo_campo==2){off+=sizeof(double);} // es double
            else if(inf.tipo_campo==3){off+=inf.size+1;} // es char
            else if(inf.tipo_campo==4){off+=(sizeof(int) + sizeof(int) );} // es Varchar
            else if(inf.tipo_campo==5){off+=sizeof(bool);} // es bool
        }
    }

    return 0;
}
Пример #21
0
void SQL_Users::create_users_table( )
{
    bool exists = sql_users.users_table_exists();
    if (exists)
    {
        //printf("TABLE Already Exists\n");
        return ;
    }

    query_string = "CREATE TABLE `users` ( \
    `id_user` int(11) NOT NULL AUTO_INCREMENT, \
    `gcal_token` varchar(64) NOT NULL,    \
    `email` varchar(64) NOT NULL, \
    `phone_number` varchar(16) NOT NULL,  \
    `username` varchar(16) NOT NULL,  \
    `_password` varchar(32) NOT NULL, \
    `new_password` varchar(32) NOT NULL,  \
    `confirmcode` varchar(32) DEFAULT NULL, \
    `firstname` varchar(64) NOT NULL, \
    `lastname` varchar(64) NOT NULL, \
    `Address_1` varchar(40) NOT NULL, \
    `Address_2` varchar(40) NOT NULL, \
    `City` varchar(20) NOT NULL, \
    `State` varchar(20) NOT NULL, \
    `ZipCode` varchar(10) NOT NULL, \
    `Country` varchar(20) NOT NULL, \
    `nick_name` varchar(20) NOT NULL, \
    `MedRef_Provider_id` int(11) NOT NULL, \
    `MedRef_Patient_id` int(11) NOT NULL, \
    `Advertiser_id` int(11) NOT NULL, \
    `Profile_pic_id` int(11) NOT NULL, \
    `Profile_greeting_id` int(11) NOT NULL, \
    `Birthdate` timestamp(11) NOT NULL, \
    `Age` int(11) NOT NULL, \
    `bedtime` timestamp NULL DEFAULT NULL, \
    `wakeup` timestamp NULL DEFAULT NULL, \
    PRIMARY KEY (`id_user`) \
    ) ENGINE=MyISAM AUTO_INCREMENT=102 DEFAULT CHARSET=latin1";
    query(false);
}
Пример #22
0
bool
TreeviewSampleApp::InitializeDatabase()
{
  bool ok = true;
  const char* sqlCommands[] = {
    "pragma foreign_keys=1;",
    "CREATE TABLE IF NOT EXISTS projects (\
       pid         integer not null,\
       prjtitle    varchar(72),\
       primary key (pid));",
    "CREATE TABLE IF NOT EXISTS folders (\
       fid     int         not null,\
       fname   varchar(64) not null,\
       fparent int         not null,\
       primary key (fid),\
       foreign key (fparent) references folders(fid) on delete cascade,\
       unique (fname, fparent));",
    "CREATE TABLE IF NOT EXISTS folderprojects (\
       fid  int not null,\
       pid  int not null,\
       foreign key (fid) references folders(fid) on delete restrict,\
       unique (fid,pid));",
    "CREATE TABLE IF NOT EXISTS folderclosure (\
       ancestor    int not null,\
       descendant  int not null,\
       distance    int not null,\
       primary key (ancestor, descendant),\
       foreign key (ancestor) references folders(fid),\
       foreign key (descendant) references folders(fid));",
    "CREATE TRIGGER IF NOT EXISTS ait_folders AFTER INSERT ON folders FOR EACH ROW\
       BEGIN\
         INSERT INTO folderclosure (ancestor, descendant, distance)\
         SELECT ancestor, NEW.fid, distance+1 FROM folderclosure\
           WHERE descendant = NEW.fparent\
           UNION ALL SELECT NEW.fid, NEW.fid, 0;\
       END;",
    "CREATE TRIGGER IF NOT EXISTS but_folders BEFORE UPDATE ON folders FOR EACH ROW\
       WHEN OLD.fparent != NEW.fparent\
       BEGIN\
         DELETE FROM folderclosure\
           WHERE descendant IN (SELECT descendant FROM folderclosure WHERE ancestor = OLD.fid)\
           AND ancestor NOT IN (SELECT descendant FROM folderclosure WHERE ancestor = OLD.fid);\
         INSERT INTO folderclosure (ancestor, descendant, distance)\
           SELECT supertree.ancestor, subtree.descendant, supertree.distance+subtree.distance+1\
             FROM folderclosure AS supertree JOIN folderclosure AS subtree\
            WHERE subtree.ancestor = OLD.fid\
              AND supertree.descendant = NEW.fparent;\
       END;",
    "CREATE TRIGGER IF NOT EXISTS bdt_folders BEFORE DELETE ON folders FOR EACH ROW\
       BEGIN\
         DELETE FROM folderclosure\
          WHERE descendant IN (SELECT descendant FROM folderclosure WHERE ancestor = OLD.fid);\
       END;",
    "INSERT OR IGNORE INTO folders (fid, fname, fparent) VALUES (1, 'root', 1);",
    NULL };

  int state = 0;
  int count;
  int j = 0;
  try
  {
    m_db.Open(wxT("tvtest.db3"));
    while (sqlCommands[j] != NULL)
    {
      m_db.ExecuteUpdate(sqlCommands[j]);
      ++j;
    }
    state = 1;
    count = m_db.ExecuteScalar("SELECT COUNT(*) FROM folderprojects;");
    if (count == 0)
    {
      m_db.ExecuteUpdate("INSERT OR IGNORE INTO projects VALUES (1,'Test project');");
      m_db.ExecuteUpdate("INSERT INTO folderprojects (fid, pid) SELECT 1, pid FROM projects;");
    }
  }
  catch (wxSQLite3Exception& e)
  {
    wxString msg;
    if (state == 0) msg = wxString(wxT("Error on creating the Treeview Sample database\n"));
    if (state == 0) msg = wxString(wxT("Error on initializing the Treeview Sample database\n"));
    msg += e.GetMessage();
    wxMessageBox(msg, wxT("Treeview Sample Database Error"), wxOK | wxCENTRE | wxICON_ERROR);
    ok = false;
  }
  return ok;
}
Пример #23
0
/* Create table table_name of type table_type. */
static logsql_table_ret log_sql_pgsql_create(request_rec *r, logsql_dbconnection *db,
						logsql_tabletype table_type, const char *table_name)
{
	PGresult *result;
	const char *tabletype = apr_table_get(db->parms,"tabletype");
	void (*handler) (int);
	char *type_suffix = NULL;

	char *create_prefix = "create table if not exists `";
	char *create_suffix = NULL;
	char *create_sql;

	PGconn *conn = db->handle;

/*	if (!global_config.createtables) {
		return APR_SUCCESS;
	}*/

	switch (table_type) {
	case LOGSQL_TABLE_ACCESS:
		create_suffix = 
	"` (id char(19),\
       agent varchar(255),\
       bytes_sent int unsigned,\
       child_pid smallint unsigned,\
       cookie varchar(255),\
	   machine_id varchar(25),\
       request_file varchar(255),\
       referer varchar(255),\
       remote_host varchar(50),\
       remote_logname varchar(50),\
       remote_user varchar(50),\
       request_duration smallint unsigned,\
       request_line varchar(255),\
       request_method varchar(10),\
       request_protocol varchar(10),\
       request_time char(28),\
       request_uri varchar(255),\
	   request_args varchar(255),\
       server_port smallint unsigned,\
       ssl_cipher varchar(25),\
       ssl_keysize smallint unsigned,\
       ssl_maxkeysize smallint unsigned,\
       status smallint unsigned,\
       time_stamp int unsigned,\
       virtual_host varchar(255))";
		break;
	case LOGSQL_TABLE_COOKIES:
	case LOGSQL_TABLE_HEADERSIN:
	case LOGSQL_TABLE_HEADERSOUT:
	case LOGSQL_TABLE_NOTES:
		create_suffix = 
	"` (id char(19),\
	   item varchar(80),\
	   val varchar(80))";
		break;
	}
	
	if (tabletype) {
		type_suffix = apr_pstrcat(r->pool, " TYPE=", 
							tabletype, NULL);
	}
	/* Find memory long enough to hold the whole CREATE string + \0 */
	create_sql = apr_pstrcat(r->pool, create_prefix, table_name, create_suffix,
						type_suffix, NULL);

	log_error(APLOG_MARK,APLOG_DEBUG,0, r->server,"create string: %s", create_sql);

	if (PQstatus(conn) != CONNECTION_OK) {
		return LOGSQL_QUERY_NOLINK;
	}
	/* A failed mysql_query() may send a SIGPIPE, so we ignore that signal momentarily. */
	handler = signal(SIGPIPE, SIG_IGN);

	/* Run the create query */
	result = PQexec(conn, create_sql);
  	if (PQresultStatus(result) != PGRES_COMMAND_OK) {
		log_error(APLOG_MARK,APLOG_ERR,0, r->server,"failed to create table: %s",
			table_name);
		signal(SIGPIPE, handler);
		PQclear(result);
		return LOGSQL_TABLE_FAIL;
	}
	signal(SIGPIPE, handler);
	PQclear(result);
	return LOGSQL_TABLE_SUCCESS;
}
Пример #24
0
HRESULT CHveDbController::SaveDBElement(RESULT_ELEMENT* pElement)
{
	HRESULT hr = S_OK;
	if(!m_fIsConnecting)
	{
		SaveLog("数据库连接已经断开,尝试重新连接...");
		hr = ConnectDB();
	}

	if(!m_fIsConnecting)
	{
		char szOutPutInfo[100];
		sprintf(szOutPutInfo, "连接数据库失败,保存%s结果失败...错误码:%d", pElement->szPlateNo, GetLastError());
		SaveLog(szOutPutInfo);
		OutPutMessage(szOutPutInfo);
		return E_FAIL;
	}
	_variant_t RecordsAffected;

	CTime cTime(pElement->dw64TimeMs / 1000);
	CString strTime = cTime.Format("%Y-%m-%d %H:%M:%S");
	CString strCurTable = cTime.Format("Hve_Data_%Y%m%d");

	//int iMinute = cTime.GetMinute(); 
	//CString strTmp = cTime.Format("Hve_Data_%Y%m%d%H");
	//strCurTable.Format("%s_%d",strTmp.GetBuffer(), iMinute/10); // 10分钟一张表
	//strTmp.ReleaseBuffer();

	if(m_strLastTable != strCurTable)
	{
		char szCmdText[1024] = {0};

		//try
		//{
		//	sprintf(szCmdText, "Create TABLE %s(Record_Id bigint primary key IDENTITY   (1,   1)   NOT   NULL,\
		//					   Location_Id int NOT NULL,Pass_Time datetime NOT NULL, Plate_No char(20), Road_No int,\
		//					   Car_Speed int, Obj_Id int, Time_Headway int, Over_Line int, Cross_Line int,\
		//					   Emergency_Stop int, Reverse_Run bit, Special_Result bit, big_image_1_path char(256),\
		//					   big_image_2_path char(256), big_image_3_path char(256), big_image_4_path char(256),\
		//					   big_image_5_path char(256), small_image_path char(256), bin_image_path char(256),\
		//					   video_path char(256))", strCurTable.GetBuffer());
		//	m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
		//	sprintf(szCmdText, "CREATE INDEX [Pass_Time] ON [dbo].[%s] ([Pass_Time])", strCurTable.GetBuffer());
		//	m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
		//	sprintf(szCmdText, "CREATE INDEX [Obj_Id] ON [dbo].[%s] ([Obj_Id])", strCurTable.GetBuffer());
		//	m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
		//	sprintf(szCmdText, "CREATE INDEX [Special_Result] ON [dbo].[%s] ([Special_Result])", strCurTable.GetBuffer());
		//	m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
		//}

		//表存在则不创建
		try
		{
			sprintf(szCmdText, "if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[%s]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) \
							   Create TABLE %s(Record_Id bigint primary key IDENTITY   (1,   1)   NOT   NULL,\
							   Location_Id int NOT NULL,Pass_Time datetime NOT NULL, Plate_No char(20), Road_No int, Road_Name char(25),Road_Direct char(10),\
							   Car_Speed int, Obj_Id int, Time_Headway int, Over_Line int, Cross_Line int,\
							   Emergency_Stop int, Reverse_Run bit, Speeding bit, Special_Result bit, big_image_1_path varchar(256),\
							   big_image_2_path varchar(256), big_image_3_path varchar(256), big_image_4_path varchar(256),\
							   big_image_5_path varchar(256), small_image_path varchar(256), bin_image_path varchar(256),\
							   video_path varchar(256))",strCurTable.GetBuffer(),strCurTable.GetBuffer());
			m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
			sprintf(szCmdText, "if not exists (select * from sysindexes where name='Pass_Time')  CREATE INDEX [Pass_Time] ON [dbo].[%s] ([Pass_Time])", strCurTable.GetBuffer());
			m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
			sprintf(szCmdText, "if not exists (select * from sysindexes where name='Obj_Id') CREATE INDEX [Obj_Id] ON [dbo].[%s] ([Obj_Id])", strCurTable.GetBuffer());
			m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
			sprintf(szCmdText, "if not exists (select * from sysindexes where name='Special_Result') CREATE INDEX [Special_Result] ON [dbo].[%s] ([Special_Result])", strCurTable.GetBuffer());
			m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
		}
		catch (_com_error e)
		{
			m_fIsConnecting = FALSE;
			CString strErrorMessage;
			strErrorMessage.Format("创建表失败!错误信息:%s  错误码:%d", e.ErrorMessage(), GetLastError());
			SaveLog(strErrorMessage.GetBuffer());
			SaveLog(e.Description());
			OutPutMessage("创建数据表失败!");
		}

		///////视图创建 由查询软件创建
		//try
		//{
		//	char szCmdText[1024] = {0};
		//	sprintf(szCmdText, "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = N'Hve_Data_View') DROP VIEW Hve_Data_View");
		//	m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);

		//}
		//catch (_com_error e)
		//{
		//	CString strErrorMessage;
		//	strErrorMessage.Format("删除视图失败! 错误信息:%s 错误码:%d", e.ErrorMessage(), GetLastError());
		//	SaveLog(strErrorMessage.GetBuffer());
		//	SaveLog(e.Description());
		//	OutPutMessage("删除视图失败...");
		//}
		
		//bool fIsCreateViewFault = true;
		//int iRetry = 0;
		//while(fIsCreateViewFault)
		//{
		//	if(iRetry++ == 5)
		//	{
		//		exit(1);  //reboot
		//	}

		//	try
		//	{
		//		_RecordsetPtr pPtr;
		//		CString strName;
		//		if(FAILED(pPtr.CreateInstance("ADODB.Recordset")))
		//		{
		//			OutPutMessage("创建ADO数据集失败...");
		//			return E_FAIL;
		//		}

		//		CString strConnectInfo;
		//		strConnectInfo.Format("Driver=SQL Server;Server=%s;DATABASE=%s;UID=%s;PWD=%s",
		//			m_strServerIP, m_strDataBase, m_strUserName, m_strPassword);
		//		CString strCommand = "SELECT name FROM sysobjects WHERE (name LIKE 'Hve_Data_%')";;
		//		if(FAILED(pPtr->Open(_variant_t(strCommand), _variant_t(strConnectInfo), adOpenStatic, adLockOptimistic, adCmdText)))
		//		{
		//			OutPutMessage("获取数据表名字失败...");
		//			pPtr.Release();
		//			return E_FAIL;
		//		}
		//		while(!pPtr->GetadoEOF())
		//		{
		//			CString strTmp = (char*)_bstr_t(pPtr->GetCollect("name"));
		//			strTmp.TrimRight();
		//			if(strName == "")
		//			{
		//				strName.Format("(SELECT * FROM %s)", strTmp);
		//			}
		//			else
		//			{
		//				strName.AppendFormat("union (SELECT * FROM %s)", strTmp);
		//			}
		//			pPtr->MoveNext();
		//		}
		//		pPtr->Close();
		//		pPtr.Release();

		//		char szCmdText[1024] = {0};
		//		sprintf(szCmdText,  "CREATE VIEW Hve_Data_View AS %s", strName);
		//		m_pConnection->Execute((_bstr_t)szCmdText, &RecordsAffected, adCmdText);
		//		fIsCreateViewFault = false;
		//	}
		//	catch (_com_error e)
		//	{
		//		fIsCreateViewFault = true;
		//		CString strErrorMessage;
		//		strErrorMessage.Format("创建视图失败... 错误码:%d", GetLastError());
		//		SaveLog(strErrorMessage.GetBuffer());
		//		SaveLog(e.Description());
		//		OutPutMessage("创建视图失败...");
		//	}
		//}
	
	}
Пример #25
0
*/


const char* const_userdb = "userinfo.db";

const char* const_msgdb = "msg.db";

const char* const_commondirectory = "Common";

TCHAR IPath::s_tszPath[MAX_PATH] = {0x0};

char IPath::s_szPath[MAX_PATH*2] = {0x0};

const char* const_userdb_sql =  "begin;\n  \
								CREATE TABLE tb_localuser(  \
								id varchar(20) not null,\
								nickname varchar(20),\
								logintime int not null, \
								lastlogintime varchar(20) not null,\
								res		varchar(20) not null  default '',\
								type varchar(20) not null  default '',\
								sex  varchar(20) not null, \
								loginid varchar(20) not null, \
								pswd  varchar(20) not null, \
								primary key(id)\
								);\
								CREATE TABLE tb_localconfig(\
								id  varchar(20) not null ,\
								loginstatus smallint not null  default 0,\
								savepswd smallint not null  default 0,\
								autologin smallint not null  default 0,\
Пример #26
0
/* Create table table_name of type table_type. */
static logsql_table_ret log_sql_dbi_create(request_rec *r, logsql_dbconnection *db,
						logsql_tabletype table_type, const char *table_name)
{
	dbi_result result;
    const char *driver = apr_table_get(db->parms,"driver");
	const char *tabletype = apr_table_get(db->parms,"tabletype");
	char *type_suffix = NULL;

	char *create_prefix = "create table if not exists `";
	char *create_suffix = NULL;
	char *create_sql;

	dbi_conn_rec *dblink = db->handle;

/*	if (!global_config.createtables) {
		return APR_SUCCESS;
	}*/

	switch (table_type) {
	case LOGSQL_TABLE_ACCESS:
		create_suffix = 
	"` (id char(19),\
       agent varchar(255),\
       bytes_sent int unsigned,\
       child_pid smallint unsigned,\
       cookie varchar(255),\
	   machine_id varchar(25),\
       request_file varchar(255),\
       referer varchar(255),\
       remote_host varchar(50),\
       remote_logname varchar(50),\
       remote_user varchar(50),\
       request_duration smallint unsigned,\
       request_line varchar(255),\
       request_method varchar(10),\
       request_protocol varchar(10),\
       request_time char(28),\
       request_uri varchar(255),\
	   request_args varchar(255),\
       server_port smallint unsigned,\
       ssl_cipher varchar(25),\
       ssl_keysize smallint unsigned,\
       ssl_maxkeysize smallint unsigned,\
       status smallint unsigned,\
       time_stamp int unsigned,\
       virtual_host varchar(255))";
		break;
	case LOGSQL_TABLE_COOKIES:
	case LOGSQL_TABLE_HEADERSIN:
	case LOGSQL_TABLE_HEADERSOUT:
	case LOGSQL_TABLE_NOTES:
		create_suffix = 
	"` (id char(19),\
	   item varchar(80),\
	   val varchar(80))";
		break;
	}
	
	if (tabletype && !strcmp(driver,"mysql")) {
		type_suffix = apr_pstrcat(r->pool, " TYPE=", 
							tabletype, NULL);
	}
	/* Find memory long enough to hold the whole CREATE string + \0 */
	create_sql = apr_pstrcat(r->pool, create_prefix, table_name, create_suffix,
						type_suffix, NULL);

	log_error(APLOG_MARK,APLOG_DEBUG,0, r->server,"create string: %s", create_sql);

	if (!dblink) {
		return LOGSQL_QUERY_NOLINK;
	}

	/* Run the create query */
  	if (!(result = dbi_conn_query(dblink, create_sql))) {
        const char *error;
        dbi_conn_error(dblink->conn, &error);
		log_error(APLOG_MARK, APLOG_ERR, 0, r->server,
            "DBI Error: %s", error);
		return LOGSQL_TABLE_FAIL;
	}

	return LOGSQL_TABLE_SUCCESS;
}
void CCreateNewDatabase::RunEx()
{
	//SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_LOWEST);

	// reset values
	m_strQueryCreateItem = "";
	m_iCreateItem = 0;
	
	m_strQueryUpdateItem = "";
	m_iUpdateItem = 0;

	m_strQueryNoUpdateItem = "";
	m_iNoUpdateItem = 0;

	// calculate last run time
	// Scheduler
	SallyAPI::Scheduler::CSchedulerManager* schedulerManager = SallyAPI::Scheduler::CSchedulerManager::GetInstance();
	SYSTEMTIME lastRun = schedulerManager->GetLastSchedulerRun(m_pWindow, "dbcreator");

	//Convert both to FILETIMEs
	m_ftLastRun.dwHighDateTime = 0;
	m_ftLastRun.dwLowDateTime = 0;
	SystemTimeToFileTime(&lastRun, &m_ftLastRun);

	m_strCreateDate = SallyAPI::Date::DateHelper::GetCurrentDateString(false);

	// set the database version
	m_pWindow->SetPropertyInt("databaseVersion", 4);

	std::string mediaDB = m_strMediaDirectory;
	mediaDB.append("media.db");

	bool bFileExists = SallyAPI::File::FileHelper::FileExistsAndNotEmpty(mediaDB);

	SallyAPI::Database::CDatabaseConnection* dbconn = SallyAPI::Database::CDatabaseConnection::Open(mediaDB);

	dbconn->LockDatabase();
	if (bFileExists == false)
	{
		// Create
		std::string queryCreate;
		queryCreate.append("CREATE TABLE media ( \
						   Filename			TEXT UNIQUE, \
						   Album			TEXT, \
						   Artist			TEXT, \
						   Band				TEXT, \
						   Title			TEXT, \
						   Year				TEXT, \
						   Genre			TEXT, \
						   Track			TEXT, \
						   Type				varchar(1) NOT NULL, \
						   DeleteFlag		INTEGER, \
						   Rating			INTEGER, \
						   PlayTime			INTEGER, \
						   Cover			INTEGER, \
						   DBAddDate		varchar(19) NOT NULL, \
						   FileCreateDate	varchar(19) NOT NULL, \
						   LastPlayDate		varchar(19) NOT NULL, \
						   AlbumArtist      TEXT, \
						   Field1			TEXT, \
						   Field2			TEXT, \
						   PRIMARY KEY (Filename));");

		try
		{
			SallyAPI::Database::CStatement* stmtCreate = dbconn->CreateStatement();
			stmtCreate->Execute(queryCreate.c_str());
		}
		catch (SallyAPI::Database::CSQLException* e)
		{
			SallyAPI::System::CLogger* logger = SallyAPI::Core::CGame::GetLogger();
			logger->Error(e->GetMessage());
		}
	}
	dbconn->ReleaseDatabase();

	// Set Delete Flag
	std::string querySetDelete = "UPDATE media SET DeleteFlag = 1;";

	dbconn->LockDatabase();

	try
	{
		SallyAPI::Database::CStatement* stmtSetDelete = dbconn->CreateStatement();
		stmtSetDelete->Execute(querySetDelete.c_str());
	}
	catch (SallyAPI::Database::CSQLException* e)
	{
		SallyAPI::System::CLogger* logger = SallyAPI::Core::CGame::GetLogger();
		logger->Error(e->GetMessage());
	}

	dbconn->ReleaseDatabase();

	std::vector<std::string>::iterator iter;

	// Collect Information
	for (iter = m_vFolders.begin(); iter != m_vFolders.end(); iter++)
	{
		std::string folder = *iter;
		CollectInformation(folder);

		if (m_bPleaseStop)
		{
			SallyAPI::Database::CDatabaseConnection::Close(mediaDB);
			return;
		}
	}

	m_pProcessbar->SetMaxPosition(m_iFileCount);

	// Create Database
	for (iter = m_vFolders.begin(); iter != m_vFolders.end(); iter++)
	{
		std::string folder = *iter;
		AddFolder(dbconn, folder, mediaDB);

		if (m_bPleaseStop)
		{
			SallyAPI::Database::CDatabaseConnection::Close(mediaDB);
			return;
		}
	}
	// execute rest of the create item statements
	ExecuteCreateItem(dbconn);
	ExecuteUpdateItem(dbconn);
	ExecuteNoUpdateItem(dbconn);

	// Set Delete Flag
	std::string queryDelete;
	queryDelete.append("DELETE FROM media WHERE DeleteFlag = 1;");

	dbconn->LockDatabase();

	try
	{
		SallyAPI::Database::CStatement* stmtDelete = dbconn->CreateStatement();
		stmtDelete->Execute(queryDelete.c_str());
	}
	catch (SallyAPI::Database::CSQLException* e)
	{
		SallyAPI::System::CLogger* logger = SallyAPI::Core::CGame::GetLogger();
		logger->Error(e->GetMessage());
	}

	dbconn->ReleaseDatabase();

	SallyAPI::Database::CDatabaseConnection::Close(mediaDB);

	m_pWindow->SendMessageToParent(0, 0, m_iMessageId);
}
Пример #28
0
#include "output_mysql.h"
#include "util.h"

#include <stdlib.h>
#include <string.h>
#include <strings.h>

static const char mysql_create_template[] = "\
CREATE TABLE IF NOT EXISTS `%s` (\
	`tstamp` timestamp NOT NULL,\
	`hostname` varchar(256) NOT NULL,\
	`interface` varchar(16) NOT NULL,\
	`vlan_tag` int(11) NOT NULL,\
	`mac_address` varchar(17) NOT NULL,\
	`ip_address` varchar(42) NOT NULL,\
	`origin` varchar(8) NOT NULL,\
	KEY `interface` (`interface`),\
	KEY `vlan_tag` (`vlan_tag`),\
	KEY `interface_vlan_tag` (`interface`,`vlan_tag`)\
)";

static const char mysql_insert_template[] = "\
INSERT INTO `%s`(\
	`tstamp`,\
	`hostname`, \
	`interface`,\
	`vlan_tag`,\
	`mac_address`,\
	`ip_address`,\
	`origin`\
) VALUES(FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?)";
Пример #29
0
int
main(int argc, char *argv[])
{
    int errCode = 1;

    CS_RETCODE ret;
    CS_RETCODE results_ret;
    CS_CHAR cmdbuf[4096];
    CS_CHAR name[257];
    CS_INT datalength;
    CS_SMALLINT ind;
    CS_INT count;
    CS_INT num_cols;
    CS_INT row_count = 0;
    CS_DATAFMT datafmt;
    CS_DATAFMT descfmt;
    CS_INT intvar;
    CS_INT intvarsize;
    CS_SMALLINT intvarind;
    CS_INT res_type;

    int i;

    if (argc > 1 && (0 == strcmp(argv[1], "-v")))
        verbose = 1;

    printf("%s: use ct_dynamic to prepare and execute  a statement\n", __FILE__);
    if (verbose) {
        printf("Trying login\n");
    }
    ret = try_ctlogin(&ctx, &conn, &cmd, verbose);
    if (ret != CS_SUCCEED) {
        fprintf(stderr, "Login failed\n");
        return 1;
    }

    ct_callback(ctx, NULL, CS_SET, CS_CLIENTMSG_CB, (CS_VOID *) ex_clientmsg_cb);

    ct_callback(ctx, NULL, CS_SET, CS_SERVERMSG_CB, (CS_VOID *) ex_servermsg_cb);

    ret = ct_cmd_alloc(conn, &cmd2);
    chk(ret == CS_SUCCEED, "cmd2_alloc failed\n");

    /* do not test error */
    ret = run_command(cmd, "IF OBJECT_ID('tempdb..#ct_dynamic') IS NOT NULL DROP table #ct_dynamic");

    strcpy(cmdbuf, "create table #ct_dynamic (id numeric identity not null, \
        name varchar(30), age int, cost money, bdate datetime, fval float) ");

    ret = run_command(cmd, cmdbuf);
    chk(ret == CS_SUCCEED, "create table failed\n");

    strcpy(cmdbuf, "insert into #ct_dynamic ( name , age , cost , bdate , fval ) ");
    strcat(cmdbuf, "values ('Bill', 44, 2000.00, 'May 21 1960', 60.97 ) ");

    ret = run_command(cmd, cmdbuf);
    chk(ret == CS_SUCCEED, "insert table failed\n");

    strcpy(cmdbuf, "insert into #ct_dynamic ( name , age , cost , bdate , fval ) ");
    strcat(cmdbuf, "values ('Freddy', 32, 1000.00, 'Jan 21 1972', 70.97 ) ");

    ret = run_command(cmd, cmdbuf);
    chk(ret == CS_SUCCEED, "insert table failed\n");

    strcpy(cmdbuf, "insert into #ct_dynamic ( name , age , cost , bdate , fval ) ");
    strcat(cmdbuf, "values ('James', 42, 5000.00, 'May 21 1962', 80.97 ) ");

    ret = run_command(cmd, cmdbuf);
    chk(ret == CS_SUCCEED, "insert table failed\n");

    strcpy(cmdbuf, "select name from #ct_dynamic where age = ?");

    ret = ct_dynamic(cmd, CS_PREPARE, "age", CS_NULLTERM, cmdbuf, CS_NULLTERM);
    chk(ret == CS_SUCCEED, "ct_dynamic failed\n");

    chk(ct_send(cmd) == CS_SUCCEED, "ct_send(CS_PREPARE) failed\n");

    while ((ret = ct_results(cmd, &res_type)) == CS_SUCCEED) {
        switch ((int) res_type) {

        case CS_CMD_SUCCEED:
        case CS_CMD_DONE:
            break;

        case CS_CMD_FAIL:
            break;

        default:
            goto ERR;
        }
    }
    chk(ret == CS_END_RESULTS, "ct_results() unexpected return.\n", (int) ret);

    ret = ct_dynamic(cmd, CS_DESCRIBE_INPUT, "age", CS_NULLTERM, NULL, CS_UNUSED);
    chk(ret == CS_SUCCEED, "ct_dynamic failed\n");

    chk(ct_send(cmd) == CS_SUCCEED, "ct_send(CS_DESCRIBE_INPUT) failed\n");

    while ((ret = ct_results(cmd, &res_type)) == CS_SUCCEED) {
        switch ((int) res_type) {

        case CS_DESCRIBE_RESULT:
            ret = ct_res_info(cmd, CS_NUMDATA, &num_cols, CS_UNUSED, NULL);
            chk(ret == CS_SUCCEED, "ct_res_info() failed");

            for (i = 1; i <= num_cols; i++) {
                ret = ct_describe(cmd, i, &descfmt);
                chk(ret == CS_SUCCEED, "ct_describe() failed");
                fprintf(stderr, "CS_DESCRIBE_INPUT parameter %d :\n", i);
                if (descfmt.namelen == 0)
                    fprintf(stderr, "\t\tNo name...\n");
                else
                    fprintf(stderr, "\t\tName = %*.*s\n", descfmt.namelen, descfmt.namelen, descfmt.name);
                fprintf(stderr, "\t\tType   = %d\n", descfmt.datatype);
                fprintf(stderr, "\t\tLength = %d\n", descfmt.maxlength);
            }
            break;

        case CS_CMD_SUCCEED:
        case CS_CMD_DONE:
            break;

        case CS_CMD_FAIL:
            break;

        default:
            goto ERR;
        }
    }

    ret = ct_dynamic(cmd, CS_DESCRIBE_OUTPUT, "age", CS_NULLTERM, NULL, CS_UNUSED);
    chk(ret == CS_SUCCEED, "ct_dynamic failed\n");

    chk(ct_send(cmd) == CS_SUCCEED, "ct_send(CS_DESCRIBE_OUTPUT) failed\n");

    while ((ret = ct_results(cmd, &res_type)) == CS_SUCCEED) {
        switch ((int) res_type) {

        case CS_DESCRIBE_RESULT:
            ret = ct_res_info(cmd, CS_NUMDATA, &num_cols, CS_UNUSED, NULL);
            chk(ret == CS_SUCCEED, "ct_res_info() failed");
            chk(num_cols == 1, "CS_DESCRIBE_OUTPUT showed %d columns , expected 1\n", num_cols);

            for (i = 1; i <= num_cols; i++) {
                ret = ct_describe(cmd, i, &descfmt);
                chk(ret == CS_SUCCEED, "ct_describe() failed");

                if (descfmt.namelen == 0)
                    fprintf(stderr, "\t\tNo name...\n");
                else
                    fprintf(stderr, "\t\tName = %*.*s\n", descfmt.namelen, descfmt.namelen, descfmt.name);
                fprintf(stderr, "\t\tType   = %d\n", descfmt.datatype);
                fprintf(stderr, "\t\tLength = %d\n", descfmt.maxlength);
            }
            break;

        case CS_CMD_SUCCEED:
        case CS_CMD_DONE:
            break;

        case CS_CMD_FAIL:
            break;

        default:
            goto ERR;
        }
    }

    /* execute dynamic on a second command to check it still works */
    ret = ct_dynamic(cmd2, CS_EXECUTE, "age", CS_NULLTERM, NULL, CS_UNUSED);
    chk(ret == CS_SUCCEED, "ct_dynamic failed\n");

    intvar = 44;
    intvarsize = 4;
    intvarind = 0;

    datafmt.name[0] = 0;
    datafmt.namelen = 0;
    datafmt.datatype = CS_INT_TYPE;
    datafmt.status = CS_INPUTVALUE;

    ret = ct_setparam(cmd2, &datafmt, (CS_VOID *) & intvar, &intvarsize, &intvarind);
    chk(ret == CS_SUCCEED, "ct_setparam(int) failed\n");

    chk(ct_send(cmd2) == CS_SUCCEED, "ct_send(CS_EXECUTE) failed\n");

    while ((results_ret = ct_results(cmd2, &res_type)) == CS_SUCCEED) {
        chk(res_type != CS_CMD_FAIL, "1: ct_results() result_type CS_CMD_FAIL.\n");
        chk(res_type != CS_COMPUTE_RESULT, "ct_results() unexpected CS_COMPUTE_RESULT.\n");

        switch ((int) res_type) {
        case CS_CMD_SUCCEED:
            break;
        case CS_CMD_DONE:
            break;
        case CS_ROW_RESULT:
            datafmt.datatype = CS_CHAR_TYPE;
            datafmt.format = CS_FMT_NULLTERM;
            datafmt.maxlength = 256;
            datafmt.count = 1;
            datafmt.locale = NULL;
            ret = ct_bind(cmd2, 1, &datafmt, name, &datalength, &ind);
            chk(ret == CS_SUCCEED, "ct_bind() failed\n");

            while (((ret = ct_fetch(cmd2, CS_UNUSED, CS_UNUSED, CS_UNUSED, &count)) == CS_SUCCEED)
                    || (ret == CS_ROW_FAIL)) {
                row_count += count;
                chk(ret != CS_ROW_FAIL, "ct_fetch() CS_ROW_FAIL on row %d.\n", row_count);
                if (ret == CS_SUCCEED) {
                    chk(!strcmp(name, "Bill"), "fetched value '%s' expected 'Bill'\n", name);
                } else {
                    break;
                }
            }
            chk(ret == CS_END_DATA, "ct_fetch() unexpected return %d.\n", (int) ret);
            break;
        default:
            fprintf(stderr, "ct_results() unexpected result_type.\n");
            return 1;
        }
    }
    chk(results_ret == CS_END_RESULTS, "ct_results() unexpected return.\n", (int) results_ret);

    intvar = 32;

    chk(ct_send(cmd2) == CS_SUCCEED, "ct_send(CS_EXECUTE) failed\n");

    while ((results_ret = ct_results(cmd2, &res_type)) == CS_SUCCEED) {
        chk(res_type != CS_CMD_FAIL, "2: ct_results() result_type CS_CMD_FAIL.\n");
        chk(res_type != CS_COMPUTE_RESULT, "ct_results() unexpected CS_COMPUTE_RESULT.\n");

        switch ((int) res_type) {
        case CS_CMD_SUCCEED:
            break;
        case CS_CMD_DONE:
            break;
        case CS_ROW_RESULT:
            datafmt.datatype = CS_CHAR_TYPE;
            datafmt.format = CS_FMT_NULLTERM;
            datafmt.maxlength = 256;
            datafmt.count = 1;
            datafmt.locale = NULL;
            ret = ct_bind(cmd2, 1, &datafmt, name, &datalength, &ind);
            chk(ret == CS_SUCCEED, "ct_bind() failed\n");

            while (((ret = ct_fetch(cmd2, CS_UNUSED, CS_UNUSED, CS_UNUSED, &count)) == CS_SUCCEED)
                    || (ret == CS_ROW_FAIL)) {
                row_count += count;
                chk(ret != CS_ROW_FAIL, "ct_fetch() CS_ROW_FAIL on row %d.\n", row_count);

                if (ret == CS_SUCCEED) {
                    chk(!strcmp(name, "Freddy"), "fetched value '%s' expected 'Freddy'\n", name);
                } else {
                    break;
                }
            }
            chk(ret == CS_END_DATA, "ct_fetch() unexpected return %d.\n", (int) ret);
            break;
        default:
            fprintf(stderr, "ct_results() unexpected result_type.\n");
            return 1;
        }
    }
    chk(results_ret == CS_END_RESULTS, "ct_results() unexpected return.\n", (int) results_ret);

    ret = ct_dynamic(cmd, CS_DEALLOC, "age", CS_NULLTERM, NULL, CS_UNUSED);
    chk(ret == CS_SUCCEED, "ct_dynamic failed\n");

    chk(ct_send(cmd) == CS_SUCCEED, "ct_send(CS_DEALLOC) failed\n");

    while ((ret = ct_results(cmd, &res_type)) == CS_SUCCEED) {
        switch ((int) res_type) {

        case CS_CMD_SUCCEED:
        case CS_CMD_DONE:
            break;

        case CS_CMD_FAIL:
            break;

        default:
            goto ERR;
        }
    }
    chk(ret == CS_END_RESULTS, "ct_results() unexpected return.\n", (int) ret);

    /*
     * check we can prepare again dynamic with same name after deallocation
     */
    strcpy(cmdbuf, "select name from #ct_dynamic where age = ?");
    ret = ct_dynamic(cmd, CS_PREPARE, "age", CS_NULLTERM, cmdbuf, CS_NULLTERM);
    chk(ret == CS_SUCCEED, "ct_dynamic failed\n");

    chk(ct_send(cmd) == CS_SUCCEED, "ct_send(CS_PREPARE) failed\n");

    while ((ret = ct_results(cmd, &res_type)) == CS_SUCCEED) {
        switch ((int) res_type) {

        case CS_CMD_SUCCEED:
        case CS_CMD_DONE:
            break;

        case CS_CMD_FAIL:
            break;

        default:
            goto ERR;
        }
    }
    chk(ret == CS_END_RESULTS, "ct_results() unexpected return.\n", (int) ret);

    ct_dynamic(cmd, CS_DEALLOC, "invalid", CS_NULLTERM, NULL, CS_UNUSED);
    ct_send(cmd);
    while ((ret = ct_results(cmd, &res_type)) == CS_SUCCEED)
        chk(res_type != CS_ROW_RESULT, "Rows not expected\n");
    chk(ret == CS_END_RESULTS, "ct_results() unexpected return.\n", (int) ret);

    ret = ct_dynamic(cmd2, CS_EXECUTE, "age", CS_NULLTERM, NULL, CS_UNUSED);
    chk(ret == CS_SUCCEED, "ct_dynamic failed\n");

    intvar = 32;
    intvarsize = 4;
    intvarind = 0;

    datafmt.name[0] = 0;
    datafmt.namelen = 0;
    datafmt.datatype = CS_INT_TYPE;
    datafmt.status = CS_INPUTVALUE;

    ret = ct_setparam(cmd2, &datafmt, (CS_VOID *) & intvar, &intvarsize, &intvarind);
    chk(ct_send(cmd2) == CS_SUCCEED, "ct_send(CS_EXECUTE) failed\n");

    /* all tests succeeded */
    errCode = 0;

ERR:
    cleanup();
    return errCode;
}
// to save bangla fonts in mySql

mysql> set names ‘utf8′;	// not necessary
mysql> create database bangla character set utf8 collate utf8_general_ci;
mysql> use bangla;
mysql> create table profile (profile_name varchar(100) character set utf8 collate utf8_general_ci);

/*

to use it using java, you have to write this:
String DB_URL = "jdbc:mysql://localhost/bangla?useUnicode=true&characterEncoding=UTF-8";
	see, after the database name i.e. 'bangla', you have to add this: 
		"?useUnicode=true&characterEncoding=UTF-8"
		that's all.

*/