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; }
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 }