Exemple #1
0
int main ()
{
	tp_buffer *bp = (tp_buffer*)malloc(sizeof(tp_buffer)*PAGES);
	bp = initbuffer();
	
	char *nomeTabela=(char *)malloc(sizeof(char)*TAMANHO_NOME_TABELA);
	char *nomeCampo=(char *)malloc(sizeof(char)*TAMANHO_NOME_CAMPO);
	char *inserir=(char *)malloc(sizeof(char)*1);
	
	char tipoCampo;
	
	table *tabela = (table *)malloc(sizeof(table)*1);	
	int fimCampos = 0, numTabelas, tamanhoCampo, i;
	
	printf("Digite o numero de tabelas a serem inseridas!\n");
	scanf("%i",&numTabelas);
	
	for(i = 0; i < numTabelas; i++){
		printf("Digite o nome da tabela!\n");
		scanf("%s",nomeTabela);
			
		tabela = iniciaTabela(nomeTabela);
		
		while(fimCampos == 0){
			printf("Digite o Nome do campo!\n");
			scanf("%s",nomeCampo);
			fflush(stdin);
			
			printf("Digite o Tipo do campo!\n");
			scanf("%c",&tipoCampo);
			fflush(stdin);
			
			printf("Digite o Tamanho do campo!\n");
			scanf("%d",&tamanhoCampo);	
			
			tabela = adicionaCampo(tabela, nomeCampo, tipoCampo, tamanhoCampo);
			
			printf("Deseja inserir um novo campo? (Y/N)\n");
			scanf("%s",inserir);
			
			if(!strcmp(inserir,"N")){
				fimCampos = 1;
				finalizaTabela(tabela);
			}	
		}
	}
	printf("Digite o nome da tabela!\n");
	scanf("%s",nomeTabela);
	
	
	//printf("%d",i);
	return 0;
}
int main(/*int rg ,char *nomeTabela[]*/){
	
	int erro;

	table *t = NULL;
	column *c = NULL;

	t = iniciaTabela("Pesso");

	if(t == ERRO_NOME_TABELA_INVALIDO){
		printf("Erro: na função iniciaTabela(). Nome da tabela já existente.\n");
		return 0;
	}

	t = adicionaCampo(t, "Nome", 'S', 20);
	t = adicionaCampo(t, "Idade", 'I', (sizeof(int)));
	t = adicionaCampo(t, "Sexo", 'C', (sizeof(char)));
	t = adicionaCampo(t, "Media", 'D', (sizeof(double)));
	t = adicionaCampo(t, "Obs", 'S', 40);
	t = adicionaChavePrimaria(t,"Nome");
	t = adicionaChaveEstrangeira(t,"Nome","Pessoa");

	erro = finalizaTabela(t);

	if(erro != SUCCESS){
		printf("Erro %d: na função finalizaTabela().\n", erro);
		return 0;
	}
	
	c = insereValor(c, "Nome", "Um"); 
	c = insereValor(c, "Idade", "40");
	c = insereValor(c, "Sexo", "F");
	c = insereValor(c, "Media", "2.5");
	c = insereValor(c, "Obs", "Obs. Um");
	

	c = insereValor(c, "Nome", "Dois");
	c = insereValor(c, "Idade", "40");
	c = insereValor(c, "Sexo", "M");
	c = insereValor(c, "Media", "1.67");
	c = insereValor(c, "Obs", "Obs. Dois");


	c = insereValor(c, "Nome", "Dois");
	c = insereValor(c, "Idade", "40");
	c = insereValor(c, "Sexo", "F");
	c = insereValor(c, "Media", "1.456");
	c = insereValor(c, "Obs", "Obs. Três");

	erro = finalizaInsert("Pesso", c);
	
	t = iniciaTabela("Pessoa");

	if(t == ERRO_NOME_TABELA_INVALIDO){
		printf("Erro: na função iniciaTabela(). Nome da tabela já existente.\n");
		return 0;
	}

	t = adicionaCampo(t, "Nome", 'S', 20);
	t = adicionaCampo(t, "Idade", 'I', (sizeof(int)));
	t = adicionaCampo(t, "Sexo", 'C', (sizeof(char)));
	t = adicionaCampo(t, "Media", 'D', (sizeof(double)));
	t = adicionaCampo(t, "Obs", 'S', 40);
	t = adicionaChavePrimaria(t,"Nome");
	t = adicionaChaveEstrangeira(t,"Nome","Pesso");

	erro = finalizaTabela(t);

	if(erro != SUCCESS){
		printf("Erro %d: na função finalizaTabela().\n", erro);
		return 0;
	}
	
	c = insereValor(c, "Nome", "Um"); 
	c = insereValor(c, "Idade", "40");
	c = insereValor(c, "Sexo", "F");
	c = insereValor(c, "Media", "2.5");
	c = insereValor(c, "Obs", "Obs. Um");
	

	c = insereValor(c, "Nome", "Dois");
	c = insereValor(c, "Idade", "40");
	c = insereValor(c, "Sexo", "M");
	c = insereValor(c, "Media", "1.67");
	c = insereValor(c, "Obs", "Obs. Dois");


	c = insereValor(c, "Nome", "Dois");
	c = insereValor(c, "Idade", "40");
	c = insereValor(c, "Sexo", "F");
	c = insereValor(c, "Media", "1.456");
	c = insereValor(c, "Obs", "Obs. Três");

	erro = finalizaInsert("Pessoa", c);
/*
	if(erro != SUCCESS){
		printf("Erro %d: na função finalizaInsert()\n", erro);
		return 0;
	}


	if(rg == 1){
		printf("Erro: nome de tabela nao inserido na linha de comando.\n");
		return 0;
	}

	struct fs_objects objeto = leObjeto(nomeTabela[1]);	
	
	tp_table *esquema = leSchema(objeto);

	if(esquema == ERRO_ABRIR_ESQUEMA){
		printf("Erro ao criar o esquema.\n");
		return 0;
	}

	tp_buffer *bufferpoll = initbuffer();

	if(bufferpoll == ERRO_DE_ALOCACAO){
		printf("Erro ao alocar memória para o buffer.\n");
		return 0;
	}

	erro = colocaTuplaBuffer(bufferpoll, 0, esquema, objeto);

	if(erro != SUCCESS){
		printf("Erro %d: na função colocaTuplaBuffer().\n", erro);
		return 0;
	}
	
	erro = colocaTuplaBuffer(bufferpoll, 1, esquema, objeto);

	if(erro != SUCCESS){
		printf("Erro %d: na função colocaTuplaBuffer().\n", erro);
		return 0;
	}
	
	erro = colocaTuplaBuffer(bufferpoll, 2, esquema, objeto);

	if(erro != SUCCESS){
		printf("Erro %d: na função colocaTuplaBuffer().\n", erro);
		return 0;
	}
	
	column *tuplaE = excluirTuplaBuffer(bufferpoll, esquema, objeto, 0, 2); //pg, tupla
	column *pagina = getPage(bufferpoll, esquema, objeto, 0);

	if(tuplaE == ERRO_PARAMETRO){
		printf("Erro, na função excluirTuplaBuffer(), problemas no parametro.\n");
		return 0;
	}
	if(pagina == ERRO_PARAMETRO){
		printf("Erro, na função getPage(), problemas no parametro.\n");
		return 0;
	}
	
	// PARA IMPRIMIR TUPLA EXCLUIDA -----------------------------
	//-------------------------------------------------------------
	printf("\nTupla excluída do Buffer.\n");
	int j = 0;
	for(j=0; j < objeto.qtdCampos; j++){
		
		if(tuplaE[j].tipoCampo == 'S')
			printf("%s: %s ", tuplaE[j].nomeCampo,tuplaE[j].valorCampo);
		else if(tuplaE[j].tipoCampo == 'I'){
			int *n = (int *)&tuplaE[j].valorCampo[0];
			printf("%s: %d ",tuplaE[j].nomeCampo, *n);
		}
		else if(tuplaE[j].tipoCampo == 'C'){
			printf("%s: %c ",tuplaE[j].nomeCampo, tuplaE[j].valorCampo[0]);
		}
		else if(tuplaE[j].tipoCampo == 'D'){
			double *n = (double *)&tuplaE[j].valorCampo[0];
			printf("%s: %f ",tuplaE[j].nomeCampo, *n);
		}
		printf("\n");
	}
	
	//-------------------------------------------------------------

	// PARA IMPRIMIR PÁGINA ---------------------------------------
	//-------------------------------------------------------------
	printf("\nPágina armazenada na estrutura column *pagina.\n");
	for(j=0; j < objeto.qtdCampos*bufferpoll[0].nrec; j++){
		
		if(pagina[j].tipoCampo == 'S')
			printf("%s: %s ", pagina[j].nomeCampo,pagina[j].valorCampo);
		else if(pagina[j].tipoCampo == 'I'){
			int *n = (int *)&pagina[j].valorCampo[0];
			printf("%s: %d ",pagina[j].nomeCampo, *n);
		}
		else if(pagina[j].tipoCampo == 'C'){
			printf("%s: %c ",pagina[j].nomeCampo, pagina[j].valorCampo[0]);
		}
		else if(pagina[j].tipoCampo == 'D'){
			double *n = (double *)&pagina[j].valorCampo[0];
			printf("%s: %f ",pagina[j].nomeCampo, *n);
		}
		printf("\n");
	}
	printf("\n\n");
	
	//-------------------------------------------------------------
	

	erro = printbufferpoll(bufferpoll, esquema, objeto, 0);

	if(erro != SUCCESS){
		printf("Erro %d: na função printbufferpoll().\n", erro);
		return 0;
	}
*/
	return 0;
}
Exemple #3
0
void example()
{
	int ok = checkCreateDB("UFFS");//cria banco caso não exista

	current_database = busca("UFFS",1);

	if (!ok)
	{	
	    int nrTabelas = 3;
	    int nTabela[nrTabelas];
	    table  *tab[nrTabelas]; 
	    column *colunas;
	    int object, schema;
	    
	    object      = existeArquivo("fs_object.dat");
	    schema      = existeArquivo("fs_schema.dat");
	   
	    nTabela[0]  = existeArquivo(table_name_real("Aluno",current_database));
	    
	    nTabela[1]  = existeArquivo(table_name_real("Inst",current_database));

	    nTabela[2]  = existeArquivo(table_name_real("Inscri",current_database));


        if(!nTabela[0]){ 
    		
            tab[0] = iniciaTabela(table_name_real("Aluno",current_database));                //Cria a tabela 
            tab[0] = adicionaCampo(tab[0], "CPF"     , 'I', (sizeof(int))   ,PK,"","");     //Cria os atributos
            tab[0] = adicionaCampo(tab[0], "Nome"    , 'S', 20              ,NPK,"","");        
            tab[0] = adicionaCampo(tab[0], "Endereco", 'S', 20              ,NPK,"","");
            tab[0] = adicionaCampo(tab[0], "Peso"    , 'D', (sizeof(double)),NPK,"","");
            finalizaTabela(tab[0],current_database);
            
         }
         if(!nTabela[1]){   
         	
            tab[1] = iniciaTabela(table_name_real("Inst",current_database)); 
            tab[1] = adicionaCampo(tab[1], "CodInst"  , 'I', (sizeof(int))   ,PK , "","");
            tab[1] = adicionaCampo(tab[1], "Nome"     , 'S', 20              ,NPK, "","");
            tab[1] = adicionaCampo(tab[1], "Endereco" , 'S', 20              ,NPK, "","");
            tab[1] = adicionaCampo(tab[1], "Reitor"   , 'S', 10              ,NPK, "","");
            finalizaTabela(tab[1],current_database);
        }
        if(!nTabela[2]){
        	
            tab[2] = iniciaTabela(table_name_real("Inscri",current_database)); 
            tab[2] = adicionaCampo(tab[2], "CodMat"     , 'I', (sizeof(int))  ,PK, "","");
            tab[2] = adicionaCampo(tab[2], "CPF"        , 'I', (sizeof(int))  ,FK, table_name_real("Aluno",current_database),"CPF");
            tab[2] = adicionaCampo(tab[2], "CodInst"    , 'I', (sizeof(int))  ,FK , table_name_real("Inst",current_database),"CodInst");
            tab[2] = adicionaCampo(tab[2], "Curso"   , 'S',  20  ,NPK,"","");
            finalizaTabela(tab[2],current_database);
        }
         
         //Inserção de tuplas na tabela1   
        colunas = NULL;     
        colunas = insereValor(tab[0],colunas, "CPF", "123456");
        colunas = insereValor(tab[0],colunas, "Nome", "Rogerio");
        colunas = insereValor(tab[0],colunas, "Endereco", "Rua Marechal");
        colunas = insereValor(tab[0],colunas, "Peso", "81.4");
        finalizaInsert(table_name_real("Aluno",current_database), colunas); 
        
        colunas = NULL;     
        colunas = insereValor(tab[0],colunas, "CPF", "654321");
        colunas = insereValor(tab[0],colunas, "Nome", "Ricardo");
        colunas = insereValor(tab[0],colunas, "Endereco", "RuaClevela");
        colunas = insereValor(tab[0],colunas, "Peso", "88.9");
        finalizaInsert(table_name_real("Aluno",current_database), colunas); 

        colunas = NULL;     
        colunas = insereValor(tab[0],colunas, "CPF", "1234567");
        colunas = insereValor(tab[0],colunas, "Nome", "Natan");
        colunas = insereValor(tab[0],colunas, "Endereco", "RuaDelmi");
        colunas = insereValor(tab[0],colunas, "Peso", "58.9");
        finalizaInsert(table_name_real("Aluno",current_database), colunas); 
            
        
        //Inserção de tuplas na tabela2 
        colunas = NULL;
        colunas = insereValor(tab[1],colunas, "CodInst", "111");
        colunas = insereValor(tab[1],colunas, "Nome", "UFFS");
        colunas = insereValor(tab[1],colunas, "Endereco", "RuadeTerra");
        colunas = insereValor(tab[1],colunas, "Reitor", "MandaChuva");
        finalizaInsert(table_name_real("Inst",current_database), colunas);
        
        colunas = NULL;
        colunas = insereValor(tab[1],colunas, "CodInst", "222");
        colunas = insereValor(tab[1],colunas, "Nome", "CEFET");
        colunas = insereValor(tab[1],colunas, "Endereco", "RuadePedra");
        colunas = insereValor(tab[1],colunas, "Reitor", "MandaVento");
        finalizaInsert(table_name_real("Inst",current_database), colunas);

        colunas = NULL;
        colunas = insereValor(tab[1],colunas, "CodInst", "333");
        colunas = insereValor(tab[1],colunas, "Nome", "UNOESC");
        colunas = insereValor(tab[1],colunas, "Endereco", "RuadeAsfal");
        colunas = insereValor(tab[1],colunas, "Reitor", "MandaAgua");
        finalizaInsert(table_name_real("Inst",current_database), colunas);
        
        
        
        //Inserção de tupla na tabela3
        colunas = NULL;
        colunas = insereValor(tab[2],colunas, "CodMat", "1401");
        colunas = insereValor(tab[2],colunas, "CPF", "123456");
        colunas = insereValor(tab[2],colunas, "CodInst", "333");
        colunas = insereValor(tab[2],colunas, "Curso", "CC");
        finalizaInsert(table_name_real("Inscri",current_database), colunas);
        
        colunas = NULL;
        colunas = insereValor(tab[2],colunas, "CodMat", "1402");
        colunas = insereValor(tab[2],colunas, "CPF", "654321");
        colunas = insereValor(tab[2],colunas, "CodInst", "222");
        colunas = insereValor(tab[2],colunas, "Curso", "CC");
        finalizaInsert(table_name_real("Inscri",current_database), colunas);
        
        colunas = NULL;
        colunas = insereValor(tab[2],colunas, "CodMat", "1403");
        colunas = insereValor(tab[2],colunas, "CPF", "1234567");
        colunas = insereValor(tab[2],colunas, "CodInst", "111");
        colunas = insereValor(tab[2],colunas, "Curso", "ADM");
        finalizaInsert(table_name_real("Inscri",current_database), colunas);
	}
  
    current_database = -1;//não existe nenhum banco logado
}