Ejemplo n.º 1
0
int mysqlapi::phExecute(bool isCommit)
{
	if(m_connect.isConnect()<0)
		return -1;
	now_operation = statement;
	
	if(inSetSql(m_sql)<0)
		return -1;

	if(m_cursor.allocateParmBindStruct()<0)
	{
		m_cursor.getStmtErrInfo();
		m_cursor.closeCur();
		phfree();
		return -1;	
	}

	for(int i=0;i<32;i++)
	{
		if(!m_bin_fld_val_list[i].data)
			break;

		switch (m_bin_fld_val_list[i].type)
		{
			case	SQL_INT:
				m_cursor.bindPos(i,(char*)m_bin_fld_val_list[i].data,MYSQL_TYPE_LONG,sizeof(int));
				break;
			case	SQL_LONG:
				m_cursor.bindPos(i,(char*)m_bin_fld_val_list[i].data,MYSQL_TYPE_LONGLONG,sizeof(long long));
				break;
			case	SQL_STRING:
				m_bin_fld_val_list[i].data_len = strlen((const char*)m_bin_fld_val_list[i].data);
				m_cursor.bindPos(i,(char*)m_bin_fld_val_list[i].data,MYSQL_TYPE_STRING,m_bin_fld_val_list[i].len,&m_bin_fld_val_list[i].data_len);
				break;
			case	SQL_BINARY:
				m_cursor.bindPos(i,(char*)m_bin_fld_val_list[i].data,MYSQL_TYPE_BLOB,m_bin_fld_val_list[i].len);
				break;
			default:
				m_cursor.closeCur();
				phfree();
				return -1;
		}
	}
	
	if(m_cursor.bindParm() != 0)
	{
		m_cursor.getStmtErrInfo();
		m_cursor.closeCur();
		phfree();
		return -1;
	}

	if(inExec(isCommit)<0)
		return -1;

	phfree();

	return 0;
}
Ejemplo n.º 2
0
Archivo: TM.c Proyecto: pexcn/mini-c
void insExec( instruc_t* inp )
{
    switch( inp->iop )
    {
        case opIN:
            inExec();
            break;
        case opOUT:
            outExec();
            break;
        case opADD:
            addExec();
            break;
        case opSUB:
            subExec();
            break;
        case opMUL:
            mulExec();
            break;
        case opDIV:
            divExec();
            break;
        case opLD:
            ldExec();
            break;
        case opST:
            stExec();
            break;
        case opLDA:
            ldaExec();
            break;
        case opLDC:
            ldcExec();
            break;	  
        case opJMP:
            jmpExec();
            break;
        case opJLT:
            jltExec();
            break;
        case opJLE:
            jleExec();
            break;
        case opJGT:
            jgtExec();
            break;
        case opJGE:
            jgeExec();
            break;
        case opJEQ:
            jeqExec();
            break;
        case opJNE:
            jneExec();
            break;  
    }
}