Example #1
0
void Stage0(void) 
{
	char buf[MAXLEN];
	MYSQL_RES *mysql_res;
	MYSQL_ROW row;

	snprintf(buf,MAXLEN,"select phone,memo from VIPMAC where MAC='%s'",MAC);
	mysql_res = ExecSQL(buf,1);
	row = mysql_fetch_row(mysql_res);
	if( row ) {
		snprintf(PHONE,12,row[0]);
		snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'VIP %s auto online 7 day')",
			remote_addr(), MAC, PHONE, row[1]);
		ExecSQL(buf,0);
		IPOnline(7*24*3600);
	}
	snprintf(buf,MAXLEN,"select phone,timestampdiff(second,now(),end) from MACPhone where MAC='%s' and now()< end",MAC);
	mysql_res = ExecSQL(buf,1);
	row = mysql_fetch_row(mysql_res);
	if( row ) {
		snprintf(PHONE,12,row[0]);
		snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'auto online %s sec')",
			remote_addr(), MAC, PHONE, row[1]);
		ExecSQL(buf,0);
		IPOnline(atoi(row[1]));
	}
	DisplayStage('0',NULL,0);	
	exit(0);
}
Example #2
0
void IPOnline( int timespan )
{
	char buf[MAXLEN];
	char *url;
	setuid(0);
	snprintf(buf,MAXLEN,"/usr/sbin/ipset add -exist user %s,%c%c:%c%c:%c%c:%c%c:%c%c:%c%c timeout %d",
		remote_addr(), MAC[0],MAC[1],MAC[2],MAC[3],MAC[4],MAC[5],MAC[6],MAC[7],MAC[8],MAC[9],MAC[10],MAC[11],
		timespan );
	system(buf);
	snprintf(buf,MAXLEN,"insert into IPMACPhone values('%s', '%s','%s',now(), date_add(now(), interval %d second))",
			remote_addr(),MAC,PHONE,timespan);
	ExecSQL(buf,0);
	url=GetValue("url");
	if(url && (*url) && (strcmp(url,"URL")!=0)) {
		if( HtmlHeadOut==0 ) {
			HtmlHead();
			PrintFile("/var/www/html/redir.html");
		}
		printf("<script language=\"javascript\" type=\"text/javascript\">"
                        "window.location.href=\"%s\";</script>\n", url);
		printf("请继续访问<a href=%s>%s</a><p>",url,url);
		printf("</body></html>\n");
		mysql_close(mysql);
		exit(0);
	}
	DisplayStage('2',"欢迎使用网络",0);
}
Example #3
0
bool CWizIndexBase::createUserEx(const WIZBIZUSER& data)
{
    qDebug() << "create user, alias: " << data.alias;

    Q_ASSERT(!data.bizGUID.isEmpty() && !data.userGUID.isEmpty());

    CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_USER,
                                              FIELD_LIST_WIZ_USER,
                                              PARAM_LIST_WIZ_USER);

    CString strSQL;
    strSQL.Format(strFormat,
                  STR2SQL(data.bizGUID).utf16(),
                  STR2SQL(data.userId).utf16(),
                  STR2SQL(data.userGUID).utf16(),
                  STR2SQL(data.alias).utf16(),
                  STR2SQL(data.pinyin).utf16()
        );


    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit userCreated(data);
    }

    return true;
}
bool			AuthClientUser::SendLogMessage(AnsiString msg)
{
	String warnMsg = FormatStr("%s(%s) : %s", m_UserName, m_ClientIP, String(msg));
	GetLog()->Warn(warnMsg);
	GetThreadManager()->AddGUIMessage(warnMsg);

	AnsiString sendMsg = msg;
	sendMsg.Unique();
	if(!this->SocketSendBYTE(PT_MSG))
		return false;

	if(!this->SocketSendWORD(sendMsg.Length()))
		return false;

	if(!this->SocketSendBuff(sendMsg.c_str(), sendMsg.Length()))
		return false;

	if(m_ADOQuery)
	{
		m_ADOQuery->SQL->Text = FormatStr("INSERT user_error_msg (accid, cur_time, build, ip, msg) VALUES ('%s', '%s', %d, '%s', '%s')",
										m_UserName, DateTimeToStr(Now()), m_Build, m_ClientIP, String(msg));
		ExecSQL(m_ADOQuery);
	}
//	Sleep(1000);
	return true;
}
Example #5
0
bool CWizIndexBase::CreateTagEx(const WIZTAGDATA& d)
{
    qDebug() << "create tag, name: " << d.strName;

    Q_ASSERT(d.strKbGUID == m_strKbGUID);

    WIZTAGDATA data = d;
    if (data.strGUID == data.strParentGUID) {
        data.strParentGUID.clear();
    }

    CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_TAG, FIELD_LIST_WIZ_TAG, PARAM_LIST_WIZ_TAG);

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strGUID).utf16(),
        STR2SQL(data.strParentGUID).utf16(),
        STR2SQL(data.strName).utf16(),
        STR2SQL(data.strDescription).utf16(),
        TIME2SQL(data.tModified).utf16(),
        WizInt64ToStr(data.nVersion).utf16()
        );


    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit tagCreated(data);
    }

    return true;
}
Example #6
0
bool CWizIndexBase::modifyMessageEx(const WIZMESSAGEDATA& data)
{
    qDebug() << "modify message, id: " << data.nId;

    WIZMESSAGEDATA dataOld;
    messageFromId(data.nId, dataOld);

    CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_MESSAGE,
                                              FIELD_LIST_WIZ_MESSAGE_MODIFY,
                                              TABLE_KEY_WIZ_MESSAGE);

    CString strSQL;
    strSQL.Format(strFormat,
                  data.nReadStatus,
                  WizInt64ToStr(data.nVersion).utf16(),
                  WizInt64ToStr(data.nId).utf16()
        );

    if (!ExecSQL(strSQL))
        return false;

    WIZMESSAGEDATA dataNew;
    messageFromId(data.nId, dataNew);

    if (!m_bUpdating) {
        emit messageModified(dataOld, dataNew);
    }

    return true;
}
Example #7
0
bool CWizIndexBase::CreateStyleEx(const WIZSTYLEDATA& data)
{
    qDebug() << "create style, name: " << data.strName;

    Q_ASSERT(data.strKbGUID == m_strKbGUID);

    CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_STYLE, FIELD_LIST_WIZ_STYLE, PARAM_LIST_WIZ_STYLE);

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strGUID).utf16(),
        STR2SQL(data.strName).utf16(),
        STR2SQL(data.strDescription).utf16(),
        COLOR2SQL(data.crTextColor).utf16(),
        COLOR2SQL(data.crBackColor).utf16(),
        data.bTextBold ? 1 : 0,
        data.nFlagIndex,
        TIME2SQL(data.tModified).utf16(),
        WizInt64ToStr(data.nVersion).utf16()
        );


    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit styleCreated(data);
    }

    return true;
}
Example #8
0
int MYSQLC::GetResultSize(PGLOBAL g, PSZ sql)
  {
  if (m_Rows < 0)
    if (ExecSQL(g, sql) != RC_OK)
      return -1;

  return m_Rows;
  } // end of GetResultSize
Example #9
0
void __fastcall TSaveObj::SaveDeltas(TClientDataSet* PCds,OleVariant vDeltas)
{
  TCustomClientDataSet *ADS  = new TCustomClientDataSet(NULL);
  try
  {  
     ADS->Data = vDeltas;
     ADS->First();
     while (!ADS->Eof)
     {
       //更新的内容
       if ((ADS->UpdateStatus() == usModified) || (ADS->UpdateStatus() == usInserted)
          || (ADS->UpdateStatus() == usDeleted) )
       {

          AssignPropVal(PCds,ADS,ADS->UpdateStatus());
          //得到更新的主键值
          if (ADS->UpdateStatus() == usModified)
          {

          }
          //建立sql
          AnsiString tmp =BuildSql(ADS);
          if (tmp !="")
          {
              int  ret =ExecSQL(tmp);
              FSaveSql = FSaveSql+ tmp;
              if (ret==-1)
              {
                  AnsiString   strInfo = "保存数据失败 ";
                  strInfo += StrPas(GetLastSQLError());

                  RaiseErr(strInfo);


              }
              else if (ret<0)
              {

                try
                {
                 RaiseErr("保存数据失败,请检查网络是否正常或其他");
                }
                __finally
                {
                   
                }
              }
          }

       }
      

       ADS->Next();
     }
Example #10
0
bool CWizIndexBase::CheckTable(const QString& strTableName)
{
    if (m_db.tableExists(strTableName))
        return true;

    // create table if not exist
    CString strFileName = WizPathAddBackslash2(WizGetResourcesPath() + "sql") + strTableName.toLower() + ".sql";
    CString strSQL;
    if (!WizLoadUnicodeTextFromFile(strFileName, strSQL))
        return false;

    return ExecSQL(strSQL);
}
Example #11
0
void Stage2()			// setonline
{
	char *phone, *password, *p;
	char buf[MAXLEN];
	MYSQL_RES *mysql_res;
	MYSQL_ROW row;
	phone = GetValue("phone");
	if ((phone == NULL) || (phone[0] == 0))
		DisplayStage('0', "输入的电话号码为空", 1);
	CheckPhone(phone);
	strncpy(PHONE, phone, 12);
	password = GetValue("password");
	if ((password == NULL) || strlen(password) != 6)
		DisplayStage('1', "请输入密码", 1);

	snprintf(buf, MAXLEN, "select pass from PhonePass where phone='%s' and valid>now()", phone);
	mysql_res = ExecSQL(buf, 1);
	row = mysql_fetch_row(mysql_res);
	if (row == NULL)
		DisplayStage('0', "未查到一周内的电话号码信息,请重新输入", 1);
	if (strcmp(row[0], password) != 0) {
		DisplayStage('1', "密码错误,请重新输入", 1);
	}

	p = GetValue("timespan");
	if ((p == NULL) || (*p == 0))
		p = "1";
	else
		*(p + 1) = 0;
	if ((*p != '1') && (*p != '7'))
		p = "1";
	snprintf(buf, MAXLEN, "replace into MACPhone values('%s','%s',now(), date_add(now(), interval %s day))", MAC, PHONE, p);
	ExecSQL(buf, 0);
	snprintf(buf, MAXLEN, "insert into Log values('%s','%s','%s',now(),'online %s day')", remote_addr(), MAC, PHONE, p);
	ExecSQL(buf, 0);

	IPOnline((*p - '0') * 24 * 3600);
}
Example #12
0
//创建超过时间删除表的存储过程
int DBInterface::createprocessdeletetable()
{
	string processname = "pro_deletable";
	string strSQL = "";
	ifexitdeletprocess(processname);
	strSQL = "create proc pro_deletable @killtablename varchar(128),@killdate int ";  
	strSQL+= " as";   
	strSQL+= " declare @t varchar(100),@cnt int";   
	strSQL+= " select @cnt=count(*) from sysobjects where name=''+@killtablename+ ''and xtype='U' and datediff(day,crdate,getdate())>=''+@killdate+''";   
	strSQL+= " if @cnt>0";     
	strSQL+= " begin";     
	strSQL+= " exec('drop table '+@killtablename)";   
	strSQL+= " end";
    return ExecSQL(	strSQL.c_str());
}
bool			GenerateCard(TADOQuery *query, String cardType, int cnt)
{
	query->SQL->Clear();

	for(int i=0; i<cnt; i++)
	{
		query->SQL->Clear();
		query->SQL->Add(FormatStr("INSERT wow_card (card_no, card_type, is_card_send, create_time) VALUES ('%s', '%s', %d, '%s')",
				CreateCardNo(cardType), cardType, 0, DateTimeToStr(Now())) );
		if(!ExecSQL(query))
		{
			return false;
		}
	}
	return true;
}
Example #14
0
void GetMAC(char *ip)
{
	FILE *fp;
	char buf[MAXLEN];
	MYSQL_RES *mysql_res;
	MYSQL_ROW row;
	int len;
	MAC[0] = 0;
	len = strlen(ip);
	fp = fopen("/proc/net/arp", "r");
	if (!fp)
		return;
	while (fgets(buf, MAXLEN, fp)) {
		if (strlen(buf) < 64)
			continue;
		if (strncmp(buf, ip, len) != 0)
			continue;
		if (buf[len] != ' ')
			continue;
		MAC[0] = buf[41];
		MAC[1] = buf[42];
		MAC[2] = buf[44];
		MAC[3] = buf[45];
		MAC[4] = buf[47];
		MAC[5] = buf[48];
		MAC[6] = buf[50];
		MAC[7] = buf[51];
		MAC[8] = buf[53];
		MAC[9] = buf[54];
		MAC[10] = buf[56];
		MAC[11] = buf[57];
		MAC[12] = 0;
	}
	fclose(fp);
	snprintf(buf, MAXLEN, "select msg from black where black='%s'", MAC);
	mysql_res = ExecSQL(buf, 1);
	row = mysql_fetch_row(mysql_res);
	if (row) {
		snprintf(buf, MAXLEN, "此MAC地址禁用(%s)", row[0]);
		DisplayStage('0', buf, 1);
	}
}
Example #15
0
bool CWizIndexBase::deleteMessageEx(const WIZMESSAGEDATA& data)
{
    qDebug() << "delete message, id: " << data.nId;

    CString strFormat = FormatDeleteSQLFormat(TABLE_NAME_WIZ_MESSAGE,
                                              TABLE_KEY_WIZ_MESSAGE);

    CString strSQL;
    strSQL.Format(strFormat,
        WizInt64ToStr(data.nId).utf16()
        );

    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit messageDeleted(data);
    }

    return true;
}
Example #16
0
bool CWizIndexBase::DeleteDocumentEx(const WIZDOCUMENTDATA& data)
{
    qDebug() << "delete document, title: " << data.strTitle;

    Q_ASSERT(data.strKbGUID == m_strKbGUID);

    CString strFormat = FormatDeleteSQLFormat(TABLE_NAME_WIZ_DOCUMENT, TABLE_KEY_WIZ_DOCUMENT);

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strGUID).utf16()
        );

    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit documentDeleted(data);
    }

    return true;
}
Example #17
0
void CheckPhone(char*phone)
{
	char *p;
	char buf[MAXLEN];
	MYSQL_RES *mysql_res;
	MYSQL_ROW row;
	if(strlen(phone)!=11) 
		DisplayStage('0',"电话号码必须是11位数字",1);
	for(p=phone;*p;p++) {
		if(*p>='0' && *p<='9') continue;
		DisplayStage('0',"电话号码必须是数字",1);
	}
	if(*phone!='1') 
		DisplayStage('0',"电话号码必须是数字1开头",1);
	snprintf(buf,MAXLEN,"select msg from black where black='%s'",phone);
	mysql_res = ExecSQL(buf,1);
	row = mysql_fetch_row(mysql_res);
	if( row )    {
		snprintf(buf,MAXLEN,"此电话号码禁用(%s)",row[0]);
		DisplayStage('0',buf,1);
	}
}
Example #18
0
bool CWizIndexBase::DeleteStyleEx(const WIZSTYLEDATA& data)
{
    qDebug() << "delete style, name: " << data.strName;

    Q_ASSERT(data.strKbGUID == m_strKbGUID);

    CString strFormat = FormatDeleteSQLFormat(TABLE_NAME_WIZ_STYLE, TABLE_KEY_WIZ_STYLE);

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strGUID).utf16()
        );

    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit styleDeleted(data);
    }

    return true;
}
Example #19
0
bool CWizIndexBase::createMessageEx(const WIZMESSAGEDATA& data)
{
    qDebug() << "create message, id: " << data.nId;

    CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_MESSAGE,
                                              FIELD_LIST_WIZ_MESSAGE,
                                              PARAM_LIST_WIZ_MESSAGE);

    CString strSQL;
    strSQL.Format(strFormat,
                  WizInt64ToStr(data.nId).utf16(),
                  STR2SQL(data.bizGUID).utf16(),
                  STR2SQL(data.kbGUID).utf16(),
                  STR2SQL(data.documentGUID).utf16(),
                  STR2SQL(data.senderAlias).utf16(),
                  STR2SQL(data.senderId).utf16(),
                  STR2SQL(data.senderGUID).utf16(),
                  STR2SQL(data.receiverAlias).utf16(),
                  STR2SQL(data.receiverId).utf16(),
                  STR2SQL(data.receiverGUID).utf16(),
                  data.nMessageType,
                  data.nReadStatus,
                  TIME2SQL(data.tCreated).utf16(),
                  STR2SQL(data.title).utf16(),
                  STR2SQL(data.messageBody).utf16(),
                  WizInt64ToStr(data.nVersion).utf16()
        );


    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit messageCreated(data);
    }

    return true;
}
Example #20
0
bool CWizIndexBase::ModifyTagEx(const WIZTAGDATA& d)
{
    qDebug() << "modify tag, name: " << d.strName;

    Q_ASSERT(d.strKbGUID == m_strKbGUID);

    WIZTAGDATA dataOld;
    TagFromGUID(d.strGUID, dataOld);

    WIZTAGDATA data = d;
    if (data.strGUID == data.strParentGUID) {
        data.strParentGUID.Empty();
    }

    CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_TAG, FIELD_LIST_WIZ_TAG_MODIFY, TABLE_KEY_WIZ_TAG);

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strParentGUID).utf16(),
        STR2SQL(data.strName).utf16(),
        STR2SQL(data.strDescription).utf16(),
        TIME2SQL(data.tModified).utf16(),
        WizInt64ToStr(data.nVersion).utf16(),
        STR2SQL(data.strGUID).utf16()
        );

    if (!ExecSQL(strSQL))
        return false;

    WIZTAGDATA dataNew;
    TagFromGUID(d.strGUID, dataNew);

    if (!m_bUpdating) {
        emit tagModified(dataOld, dataNew);
    }

    return true;
}
Example #21
0
bool CWizIndexBase::DeleteAttachmentEx(const WIZDOCUMENTATTACHMENTDATA& data)
{
    qDebug() << "delete attachment, name: " << data.strName;

    Q_ASSERT(data.strKbGUID == m_strKbGUID);

    CString strFormat = FormatDeleteSQLFormat(TABLE_NAME_WIZ_DOCUMENT_ATTACHMENT,
                                              "ATTACHMENT_GUID");

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strGUID).utf16()
        );

    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit attachmentDeleted(data);
    }

    return true;
}
Example #22
0
bool CWizIndexBase::CreateAttachmentEx(const WIZDOCUMENTATTACHMENTDATA& data)
{
    qDebug() << "create attachment, name: " << data.strName;

    Q_ASSERT(data.strKbGUID == m_strKbGUID);

    //CString strInfoMD5 = CalDocumentAttachmentInfoMD5(data);
    //if (strInfoMD5 != data.strInfoMD5) {
    //    TOLOG2(_T("Warning: Attachment info md5 does not match: %1, %2"), strInfoMD5, data.strInfoMD5);
    //}

    CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_DOCUMENT_ATTACHMENT, FIELD_LIST_WIZ_DOCUMENT_ATTACHMENT, PARAM_LIST_WIZ_DOCUMENT_ATTACHMENT);

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strGUID).utf16(),
        STR2SQL(data.strDocumentGUID).utf16(),
        STR2SQL(data.strName).utf16(),
        STR2SQL(data.strURL).utf16(),
        STR2SQL(data.strDescription).utf16(),
        TIME2SQL(data.tInfoModified).utf16(),
        STR2SQL(data.strInfoMD5).utf16(),
        TIME2SQL(data.tDataModified).utf16(),
        STR2SQL(data.strDataMD5).utf16(),
        WizInt64ToStr(data.nVersion).utf16()
    );

    if (!ExecSQL(strSQL))
        return false;

    if (!m_bUpdating) {
        emit attachmentCreated(data);
    }

    return true;
}
Example #23
0
bool CWizIndexBase::ModifyAttachmentInfoEx(const WIZDOCUMENTATTACHMENTDATA& data)
{
    qDebug() << "modify attachment, name: " << data.strName;

    Q_ASSERT(data.strKbGUID == m_strKbGUID);

    WIZDOCUMENTATTACHMENTDATA dataOld;
    AttachmentFromGUID(data.strGUID, dataOld);

    CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_DOCUMENT_ATTACHMENT, FIELD_LIST_WIZ_DOCUMENT_ATTACHMENT_MODIFY, TABLE_KEY_WIZ_DOCUMENT_ATTACHMENT);

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strName).utf16(),
        STR2SQL(data.strURL).utf16(),
        STR2SQL(data.strDescription).utf16(),
        TIME2SQL(data.tInfoModified).utf16(),
        STR2SQL(data.strInfoMD5 ).utf16(),
        TIME2SQL(data.tDataModified).utf16(),
        STR2SQL(data.strDataMD5 ).utf16(),
        WizInt64ToStr(data.nVersion).utf16(),
        STR2SQL(data.strGUID).utf16()
    );

    if (!ExecSQL(strSQL))
        return false;

    WIZDOCUMENTATTACHMENTDATA dataNew;
    AttachmentFromGUID(data.strGUID, dataNew);

    if (!m_bUpdating) {
        emit attachmentModified(dataOld, dataNew);
    }

    return true;
}
Example #24
0
bool CWizIndexBase::modifyUserEx(const WIZBIZUSER& user)
{
    qDebug() << "modify user, alias: " << user.alias;

    Q_ASSERT(!user.bizGUID.isEmpty() && !user.userGUID.isEmpty());

    // save old user info
    WIZBIZUSER userOld;
    userFromGUID(user.bizGUID, user.userGUID, userOld);

    CString strWhere = "BIZ_GUID=%s AND USER_GUID=%s";
    strWhere = strWhere.arg(STR2SQL(user.bizGUID)).arg(STR2SQL(user.userGUID));

    CString strFormat = FormatUpdateSQLByWhere(TABLE_NAME_WIZ_USER,
                                              FIELD_LIST_WIZ_USER_MODIFY,
                                              strWhere);

    CString strSQL;
    strSQL.Format(strFormat,
                  STR2SQL(user.alias).utf16(),
                  STR2SQL(user.pinyin).utf16()
        );

    if (!ExecSQL(strSQL))
        return false;

    // read new user info
    WIZBIZUSER userNew;
    userFromGUID(user.bizGUID, user.userGUID, userNew);

    if (!m_bUpdating) {
        emit userModified(userOld, userNew);
    }

    return true;
}
Example #25
0
bool CWizIndexBase::ModifyStyleEx(const WIZSTYLEDATA& data)
{
    qDebug() << "modify style, name: " << data.strName;

    Q_ASSERT(data.strKbGUID == m_strKbGUID);

    WIZSTYLEDATA dataOld;
    StyleFromGUID(data.strGUID, dataOld);

    CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_STYLE, FIELD_LIST_WIZ_STYLE_MODIFY, TABLE_KEY_WIZ_STYLE);

    CString strSQL;
    strSQL.Format(strFormat,
        STR2SQL(data.strName).utf16(),
        STR2SQL(data.strDescription).utf16(),
        COLOR2SQL(data.crTextColor).utf16(),
        COLOR2SQL(data.crBackColor).utf16(),
        data.bTextBold ? 1 : 0,
        data.nFlagIndex,
        TIME2SQL(data.tModified).utf16(),
        WizInt64ToStr(data.nVersion).utf16(),
        STR2SQL(data.strGUID).utf16()
        );

    if (!ExecSQL(strSQL))
        return false;

    WIZSTYLEDATA dataNew;
    StyleFromGUID(data.strGUID, dataNew);

    if (!m_bUpdating) {
        emit styleModified(dataOld, dataNew);
    }

    return true;
}
//---------------------------------------------------------------------------
void TServerModeDemoDataDM::CreateTable()
{
  String ASQL;
  ASQL = "IF OBJECT_ID(N\'" + GetDatabaseName() + ".dbo." + GetTableName() + "\') IS NULL" + sLineBreak +
	"CREATE TABLE \"dbo\".\"" + GetTableName() + "\"(" +
	" \"OID\" int IDENTITY(1,1) NOT NULL, \"Subject\" nvarchar(100) NULL," +
	"\"From\" nvarchar(100) NULL," +
	" \"Sent\" datetime NULL," +
	" \"Size\" bigint NULL," +
	" \"HasAttachment\" bit NULL," +
	" \"Priority\" int NULL," +
	" CONSTRAINT \"PK_' + ATableName + '\" PRIMARY KEY CLUSTERED" +
	"(" +
	" \"OID\" ASC" +
	")WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON \"PRIMARY\"" +
	") ON \"PRIMARY\";";
  ExecSQL(ASQL);
  ExecSQL("CREATE NONCLUSTERED INDEX iSubject_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"Subject\");");
  ExecSQL("CREATE NONCLUSTERED INDEX iFrom_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"From\");");
  ExecSQL("CREATE NONCLUSTERED INDEX iSent_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"Sent\");");
  ExecSQL("CREATE NONCLUSTERED INDEX iSize_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"Size\");");
  ExecSQL("CREATE NONCLUSTERED INDEX iHasAttachment_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"HasAttachment\");");
  ExecSQL("CREATE NONCLUSTERED INDEX iPriority_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"Priority\");");
}
Example #27
0
//²Ù×÷Ô±µÇ¼
bool __fastcall TfrmLogin::LoginSys(AnsiString sLginNo, AnsiString sLginPwd)
{
    AnsiString strSQL,strInfo;
    int iRet;
    Screen->Cursor = crHourGlass;

     #if 0
        Lguser.IsAdmin = true;
        Lguser.bLoginOk = true;

    Screen->Cursor = crDefault;
    return true;
    #endif

    if (sLginPwd.IsEmpty())
    {
        strSQL = "select * from T_en_user where UR_USERID ='"+sLginNo +"' and  user_pwd is null";
    }
    else
    {
        strSQL = "select * from T_en_user where UR_USERID ='"+sLginNo +"' and  UR_PASSWORD=\'"+ sLginPwd +"\'";
    }
     char tmp;
     //tmp = PAY_USER_ACTIVE ;
     //strSQL = strSQL+ " and UR_STATUS="+QuotedStr(atoi(&tmp));
    try
    {
      iRet = ExecSQL(strSQL,true,dmMain->cDataSetQry);
    }
    catch(...)
    {
        strInfo = "µÇ¼ʧ°Ü¡£"; 
        ShowDlg(strInfo, DLG_ICONWARNING);
        return false;
    }

    if (iRet == -1)
    {
        strInfo = "µÇ¼ʧ°Ü ";
        strInfo += StrPas(GetLastSQLError());
        ShowDlg(strInfo, DLG_ICONWARNING);
        return false;
    }
    else if (iRet == -2)
    {
        strInfo = "²ÎÊý´íÎó¡£";
        ShowDlg(strInfo, DLG_ICONWARNING);
        return false;
    }
    if (dmMain->cDataSetQry->RecordCount < 1)
    {
        strInfo = "Î޴˲Ù×÷Ô±»òÃÜÂë´íÎó¡£";
        ShowDlg(strInfo, DLG_ICONWARNING);
        dmMain->cDataSetQry->Close();
        return false;;
    }
    else 
    {
        Lguser.sLoginNo =  dmMain->cDataSetQry->FieldByName("UR_USERID")->AsString;
        Lguser.sLoginName = dmMain->cDataSetQry->FieldByName("UR_USERNAME")->AsString;
        Lguser.sPwd =  dmMain->cDataSetQry->FieldByName("UR_PASSWORD")->AsString;
        Lguser.MenuRigth = dmMain->cDataSetQry->FieldByName("ur_MenuRight")->AsString;
        AnsiString tmpstr = dmMain->cDataSetQry->FieldByName("ur_isAdmin")->AsString;
        Lguser.IsAdmin = (tmpstr =="1");
        //Lguser.uProp = dmMain->cDataSetQry->FieldByName("user_prop")->AsInteger;
        Lguser.sMemo = dmMain->cDataSetQry->FieldByName("user_memo")->AsString;

        Lguser.IsAdmin = true;
        Lguser.bLoginOk = true;
    }

    Screen->Cursor = crDefault;
    return true;
}
Example #28
0
void Stage1() // sendsms, dispay input page
{
	char *phone,*p;
   	char buf[MAXLEN];
	char pass[MAXLEN];
	MYSQL_RES *mysql_res;
	MYSQL_ROW row;
	FILE *fp;
	p = GetValue("changenum");
	if ( p ) 
		DisplayStage('0',"请输入电话号码",0);
	phone = GetValue("phone");
	if( phone==NULL || phone[0]==0 ) 
		DisplayStage('0',"输入的电话号码为空",1);
	CheckPhone(phone);
	strncpy(PHONE,phone,12);	
	p = GetValue("havepass");
	if(p) 
		DisplayStage('1',"请输入密码",0);

	// 检查该设备当天是否发送过短信, 每天最多 MAXPERMAC
	snprintf(buf,MAXLEN,"select count from MACcount where MAC='%s' and sendday=curdate()",MAC);
	mysql_res = ExecSQL(buf,1);
	row = mysql_fetch_row(mysql_res);
	if( row ) {
		if( atoi(row[0]) >= MAXPERMAC ) {
			sprintf(buf,"每台设备每天允许%d手机登录,今天已经使用%s次,请换台设备再试",MAXPERMAC,row[0]);
			DisplayStage('0',buf,1);
		} 
		snprintf(buf,MAXLEN,"update MACcount set count=count+1 where MAC='%s' and sendday=curdate()",MAC);
		ExecSQL(buf,0);
	} else {
		snprintf(buf,MAXLEN,"replace into MACcount values ('%s', now(), 1)",MAC);
		ExecSQL(buf,0);
	}
	
	// 检查手机当天是否发送过短信, 每天最多 MAXPERPHONE
	snprintf(buf,MAXLEN,"select count from Phonecount where phone='%s' and sendday=curdate()",PHONE);
	mysql_res = ExecSQL(buf,1);
	row = mysql_fetch_row(mysql_res);
	if( row ) {
		if( atoi(row[0]) >= MAXPERPHONE ) {
			sprintf(buf,"每个手机每天允许%d短信,今天已经使用%s次,请换手机再试",MAXPERPHONE,row[0]);
			DisplayStage('0',buf,1);
		} 
		snprintf(buf,MAXLEN,"update Phonecount set count=count+1 where phone='%s' and sendday=curdate()",PHONE);
		ExecSQL(buf,0);
	} else {
		snprintf(buf,MAXLEN,"replace into Phonecount values ('%s', now(), 1)",PHONE);
		ExecSQL(buf,0);
	}

	snprintf(buf,MAXLEN,"select pass from PhonePass where phone='%s' and now()<valid",PHONE);
	mysql_res = ExecSQL(buf,1);
	row = mysql_fetch_row(mysql_res);
	if( row==NULL ) {
		srand(time(NULL));
		int i;
		for(i=0;i<6;i++) {
			int r;
			r=rand();
			pass[i]='0' + r%10;
		}
		pass[6]=0;
	} else 
		strncpy(pass,row[0],7);
	snprintf(buf,MAXLEN,"replace into PhonePass values ('%s', '%s', date_add(now(), interval 8 day) )",PHONE,pass);
	ExecSQL(buf,0);
	snprintf(buf,MAXLEN,"php /usr/src/sendsms/sendsms.php %s \"%s是您在中国科大访客WLAN密码,一周内都可以使用本密码登录,请保留本短信。\" 2>/dev/null",PHONE,pass);
	fp=popen(buf,"r");
	if(fp==NULL){
		snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'send pass error')",
			remote_addr(), MAC, PHONE);
		ExecSQL(buf,0);
		DisplayStage('0',"密码发送失败",1);
	}
	fgets(buf,MAXLEN,fp);
	if(strncmp(buf,"OK",2)==0) {
		snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'send pass ok')",
			remote_addr(), MAC, PHONE);
		ExecSQL(buf,0);
		DisplayStage('1',"请输入手机上收到的密码",0);
	} else {
		char tmp[MAXLEN];
		strncpy(tmp,buf,MAXLEN);
		snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'send pass error %s')",
			remote_addr(), MAC, PHONE,tmp);
		ExecSQL(buf,0);
		DisplayStage('0',tmp,1);
	}
}
void			AuthClientUser::OnLoginSuccess()
{
	m_ADOQuery->SQL->Text = FormatStr("UPDATE wow_user SET last_login_time='%s', login_count=login_count+1, login_ip='%s' where accid = '%s'",
			DateTimeToStr(Now()), m_ClientIP, m_UserName);
	ExecSQL(m_ADOQuery);
}
bool			AuthClientUser::OnUserFirstLogin(vector<String> *outputMsg)
{
	//1. 取一张免费卡
	vector<tagCardInfo>	freeCardList;
	for(int i=0; i<GetAuthServerListener()->GetCardInfoCount(); i++)
	{
		tagCardInfo *info = GetAuthServerListener()->GetCardInfoByIndex(i);
		if(!info)
			continue;
		if(info->CardMoney != 0)
			continue;
		freeCardList.push_back(*info);
	}
	sort(freeCardList.begin(), freeCardList.end(),greater<tagCardInfo>());

	String cardType, cardNo;
	for(DWORD i=0; i<freeCardList.size(); i++)
	{
		if(GetCard(m_ADOQuery, freeCardList[i].CardType, &cardNo, outputMsg))
		{
			cardType = freeCardList[i].CardType;
			break;
		}
	}

	if(cardNo == "")
	{
		if(m_IsChargeProcess == 0)
		{
			//免费卡已经发放完毕
			outputMsg->push_back(GBText("免费卡已经发放完毕, 请注册!"));
			SendRegMessage();
			return false;
		}
		else
		{
			outputMsg->push_back(GBText("对不起, 免费卡已经发放完毕!"));
		}
	}

	//2. 创建用户
	String nowStr = DateTimeToStr(Now());
	m_ADOQuery->SQL->Text = FormatStr("INSERT wow_user ("
									  "accid, 		last_login_time, 	login_count, 	start_time, 	end_time, "
									  "total_time, 	money_total_time, 	money, 			login_ip, 		create_time, "
									  "create_ip) VALUES("
									  "'%s', 		'%s', 				%d, 			'%s', 			'%s',"
									  "%d, 			%d, 				%d, 			'%s', 			'%s',"
									  "'%s'"
									  ")",
									  m_UserName,   nowStr,				0,              nowStr,         nowStr,
									  0,			0,                  0,              m_ClientIP,     nowStr,
									  m_ClientIP
									  );

	if(!ExecSQL(m_ADOQuery))
	{
		outputMsg->push_back(GBText("错误(9)"));
		return false;
	}

	m_ADOQuery->SQL->Text = FormatStr("SELECT * FROM wow_msg where msg_key = '%s'", L"first_login");
	if(!OpenSQL(m_ADOQuery))
	{
		outputMsg->push_back(GBText("错误(10)"));
		return false;
	}
	if(m_ADOQuery->RecordCount)
	{
		m_ADOQuery->First();
		String	text = m_ADOQuery->FieldByName("msg")->AsString;
		outputMsg->push_back(text);
	}

	//3. 充值
	if(cardNo != "")
	{
		if(!Charge(m_ADOQuery, m_UserName, cardNo, outputMsg))
		{
			return false;
		}
	}
	return true;
}