Exemple #1
0
void driver_filtered(sqlite3* db, double maxKmFare, time_t minStage,void (*callback)(Driver*)){
    def_stmt("select name,surname,car_manufacturer,car_model,car_average_speed,km_fare,satisfied_clients,unsatisfied_clients,hired_at,id "
             "from Driver where km_fare < @maxKmFare and (strftime('%s','now')-hired_at) > @minStage");

    bind_double_v("@maxKmFare",maxKmFare);
    bind_int64_v("@minStage",minStage);

    while(sqlite3_step(q) == SQLITE_ROW){
        Driver* d;
        d = driver_create(col_text(0),col_text(1),col_text(2),col_text(3),col_double(4),col_double(5),col_int(6),col_int(7),col_int64(8));
        d->id = col_id(9);
        callback(d);
    }
    sqlite3_reset(q);
}
Exemple #2
0
int main(void)
{
	int testRes=1;
	while(true)
	{

		SQLconnection con;
		con.setup("test","test","test","127.0.0.1",SQLconnection::MYSQL_DEFAULT_PORT);
		unsigned char connectionStatus = con.connect();
		if(connectionStatus == 1)
		{
			printf("SQL 1 connections available\n");
		}
		/*else if(connectionStatus == 1)
		{
			printf("ERROR 1 MYSQL SERVER WAS MISSING\n\n");
			testRes = 0;
			break;
		}*/
		else
		{
			printf("ERROR BOTH MYSQL SERVERS WAS MISSING\n\n");
			testRes = 0;
			break;
		}
		char dropTable[] = "DROP TABLE IF EXISTS `test`;";
		char makeTable[] = "CREATE TABLE `test` (`id` bigint(20) unsigned NOT NULL,`fruit` char(32) NOT NULL,`color` enum('black','brown','red','orange','yellow','green','blue','purple','gray','white') NOT NULL,`number` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
		char setIndex[] = "ALTER TABLE `test` ADD PRIMARY KEY(`id`), MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;";

		{
			DBResult res;
			if(!con.query(dropTable,res))
			{
				printf("dropTable: FAILED SETTING UP, IN NON TARGET TEST.\n");
				return 0;
			}

			if(!con.query(makeTable,res))
			{
				printf("makeTable: FAILED SETTING UP, IN NON TARGET TEST.\n");
				return 0;
			}


			if(!con.query(setIndex,res))
			{
				printf("indexTable: FAILED SETTING UP, IN NON TARGET TEST.\n");
				return 0;
			}
		}


		{
			DBResult res;
			SQLgen q;
			q.insertPartialINSERT("test");
			sqlCol col_id("id");
			q.addCSV(col_id);
			sqlCol col_fruit("fruit");
			q.addCSVCol(col_fruit);
			sqlCol col_color("color");
			q.addCSVCol(col_color);
			sqlCol col_number("number");
			q.addCSVCol(col_number);
			q.insertPartialVALUES();
			q.addCSVAutoincrment();
			q.addCSVvalue("apple");
			q.addCSVvalue("red");
			q.addCSVnumber("12345");
			if(!con.query(q.c_strdbg(),res))
			{
				printf("ERROR in one of: insertPartialINSERT(), addCSV(), addCSVCol(), insertPartialVALUES(), addCSVAutoincrment(), addCSVvalue(), addCSVnumber()\n");
				return 0;
			}

			q.clearAll();

			q.insertSet("test");
			q.setAutoincrment("id");
			q.setValue("fruit","orange");
			q.setValue("color","orange");
			q.setNumber("number",2831093);
			if(!con.query(q.c_strdbg(),res))
			{
				printf("ERROR in one of: insertPartialINSERT(), addCSV(), addCSVCol(), insertPartialVALUES(), addCSVAutoincrment(), addCSVvalue(), addCSVnumber()\n");
				return 0;
			}
		}

		{
			SQLgen q;
			DBResult res;
			q.clearAll();
			q.selectCol();
			sqlCol fruit("fruit");
			q.addCSVCol(fruit);
			sqlCol number("number");
			q.addCSVCol(number);
			q.selectCol("test");
			q.whereLessThan("number",(int)20000);
			q.c_strdbg();
			if(con.query(q,res))
			{
				if(auto row = res.getNextRow())
				{
					char * theFruitFromTheDatabase = fruit.getThisField(row);

					if( 12345 == atoi(number.getThisField(row)) )
					{
						printf("Basic Select passed\n");
					}
					else
					{
						printf("ERROR 'WRONG RESULT' in one of: selectCol(), addCSVCol(), whereLessThan() sqlCol::* \n");
						return 0;
					}

				}
				else
				{
					printf("ERROR 'NO ROWS' in one of: selectCol(), addCSVCol(), whereLessThan() sqlCol::* \n");
				}
			}
			else
			{
				con.getError();
				printf("ERROR 'NO RESULT' in one of: selectCol(), addCSVCol(), whereLessThan() sqlCol::* \n");
			}

		}

		{
			DBResult res;
			SQLgen q;

		}






		con.disconnect();
		if(0 != con.connected())
		{

		}
		break;
	}



	return testRes;
}
Exemple #3
0
//  =========================================================================
CRef<CSeq_table> CWiggleReader::xMakeTable(void)
//  =========================================================================
{
    CRef<CSeq_table> table(new CSeq_table);

    table->SetFeat_type(0);

    CRef<CSeq_id> chrom_id = xMakeChromId();

    CRef<CSeq_loc> table_loc(new CSeq_loc);
    { // Seq-table location
        CRef<CSeqTable_column> col_id(new CSeqTable_column);
        table->SetColumns().push_back(col_id);
        col_id->SetHeader().SetField_name("Seq-table location");
        col_id->SetDefault().SetLoc(*table_loc);
    }

    { // Seq-id
        CRef<CSeqTable_column> col_id(new CSeqTable_column);
        table->SetColumns().push_back(col_id);
        col_id->SetHeader().SetField_id(CSeqTable_column_info::eField_id_location_id);
        col_id->SetDefault().SetId(*chrom_id);
    }
    
    // position
    CRef<CSeqTable_column> col_pos(new CSeqTable_column);
    table->SetColumns().push_back(col_pos);
    col_pos->SetHeader().SetField_id(CSeqTable_column_info::eField_id_location_from);
    CSeqTable_multi_data::TInt& pos = col_pos->SetData().SetInt();

    SWiggleStat stat;
    xPreprocessValues(stat);
    
    xSetTotalLoc(*table_loc, *chrom_id);

    size_t size = m_Values.size();
    table->SetNum_rows(size);
    pos.reserve(size);

    CSeqTable_multi_data::TInt* span_ptr = 0;
    { // span
        CRef<CSeqTable_column> col_span(new CSeqTable_column);
        table->SetColumns().push_back(col_span);
        col_span->SetHeader().SetField_name("span");
        if ( stat.m_FixedSpan ) {
            col_span->SetDefault().SetInt(stat.m_Span);
        }
        else {
            span_ptr = &col_span->SetData().SetInt();
            span_ptr->reserve(size);
        }
    }

    if ( stat.m_HaveGaps ) {
        CRef<CSeqTable_column> col_step(new CSeqTable_column);
        table->SetColumns().push_back(col_step);
        col_step->SetHeader().SetField_name("value_gap");
        col_step->SetDefault().SetReal(m_GapValue);
    }

    if (m_iFlags & fAsByte) { // values
        CRef<CSeqTable_column> col_min(new CSeqTable_column);
        table->SetColumns().push_back(col_min);
        col_min->SetHeader().SetField_name("value_min");
        col_min->SetDefault().SetReal(stat.m_Min);

        CRef<CSeqTable_column> col_step(new CSeqTable_column);
        table->SetColumns().push_back(col_step);
        col_step->SetHeader().SetField_name("value_step");
        col_step->SetDefault().SetReal(stat.m_Step);

        CRef<CSeqTable_column> col_val(new CSeqTable_column);
        table->SetColumns().push_back(col_val);
        col_val->SetHeader().SetField_name("values");
        
        if ( 1 ) {
            AutoPtr< vector<char> > values(new vector<char>());
            values->reserve(size);
            ITERATE ( TValues, it, m_Values ) {
                pos.push_back(it->m_Pos);
                if ( span_ptr ) {
                    span_ptr->push_back(it->m_Span);
                }
                values->push_back(stat.AsByte(it->m_Value));
            }