Polegato.. Consegui fazer a rotina funcionar direito Obrigado pela ajuda. Att; Jr.
-----Mensagem original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de j u n i o u Enviada em: terça-feira, 24 de outubro de 2006 14:58 Para: asteriskbrasil@listas.asteriskbrasil.org Assunto: [AsteriskBrasil] ENC: queue_log -> PostgreSQL rotina em C...sugestao. Reenvio.. -----Mensagem original----- De: j u n i o u [mailto:[EMAIL PROTECTED] Enviada em: terça-feira, 24 de outubro de 2006 14:55 Para: 'asteriskbrasil@listas.asteriskbrasil.org' Assunto: RES: [AsteriskBrasil] queue_log -> PostgreSQL rotina em C...sugestao. Polegato.. Esta ai o bicho funcionando... mas esta parando na primeira linha e so insere o primeiro registro na tabela. Ele não entra no loop por causa do " result = PQexec(conn, consulta); " ...??? é isso? Valeu pela força apesar da dúvida agora ser meio "off". Att:. Jr. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <libpq-fe.h> #define MAX_CAMPOS 10 #define DELIMITADOR '|' char* campos[MAX_CAMPOS]; int Preencher_Campos(char *linha) { char *inicio, *delimitador; int campo_atual = 0; inicio = linha; delimitador = strchr(inicio, DELIMITADOR); while (delimitador && campo_atual < MAX_CAMPOS-1) { *delimitador = '\0'; campos[campo_atual++] = inicio; inicio = delimitador + 1; delimitador = strchr(inicio, DELIMITADOR); } campos[campo_atual++] = inicio; return campo_atual; } /*Objeto de conexão*/ PGconn *conn = NULL; /*Ponteiro de resultado*/ PGresult *result; int main() { /*realiza a conexão*/ conn = PQconnectdb("host=localhost user=asterisk password=asterisk dbname=asterisk"); if(PQstatus(conn) == CONNECTION_OK) { printf("Conexão com o banco efetuada com sucesso. "); } else { printf("Falha na conexão. Erro: %s", PQerrorMessage(conn)); PQfinish(conn); return -1; } FILE *arquivo; char consulta[1024]; char string[1024]; //string onde ficara a linha int x = 0; int campos_lidos; char *delimitador, *inicio; int cons; arquivo = fopen("/var/log/asterisk/queue_log", "rt"); while(fgets(string, sizeof(string), arquivo)) //le arquivo { delimitador = strchr(string, '\n'); while (delimitador) { *delimitador = '\0'; printf("\n\n\nLinha: %s\n\n", string); campos_lidos = Preencher_Campos(string); printf("Campos Lidos: %d\n", campos_lidos); int i; for (i=0; i<campos_lidos; i++) printf("Campo %2i: %s\n", i, campos[i]); //getchar(); // Sendo a variável "campos_lidos" especificando quantos campos // foram encontrados // E o vetor "campos" apontando para o início de cada campo // desta linha na memória terminados por '\0' // Aqui é contigo! ;-) strcpy(consulta,""); strcat(consulta,"INSERT INTO queue_log values ('"); for (i=0; i<campos_lidos; i++) { strcat(consulta,campos[i]); strcat(consulta, "','"); } strcat(consulta, "')"); result = PQexec(conn, consulta); if(!cons) { printf("Erro executando query."); } else { switch(PQresultStatus(result)) { case PGRES_EMPTY_QUERY: printf("Nenhuma alteracao."); break; case PGRES_FATAL_ERROR: printf("Erro na query: %s ", PQresultErrorMessage(result)); break; case PGRES_COMMAND_OK: printf("%s linhas afetadas. ", PQcmdTuples(result)); break; default: printf("Query executada sem retorno."); break; } inicio = delimitador + 1; delimitador = strchr(inicio, '\n'); } x = x+1; //printf("Linha:%d : %s",x, string); //imprime na tela as linhas } fclose(arquivo); //fecha arquivo /*Libera objeto da query*/ PQclear(result); } /*Verifica se a conexão está aberta e a encerra*/ if(conn != NULL) PQfinish(conn); } ---------------------------------------- Estação VoIP 2006 5 e 6 Dezembro Curitiba PR http://www.estacaovoip.com.br _______________________________________________ LIsta de discussões AsteriskBrasil.org AsteriskBrasil@listas.asteriskbrasil.org http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil _______________________________________________ Acesse o wiki AsteriskBrasil.org: http://www.asteriskbrasil.org __________ Informação do NOD32 IMON 1.1831 (20061024) __________ Esta mensagem foi verificada pelo NOD32 sistema antivírus http://www.eset.com.br ---------------------------------------- Estação VoIP 2006 5 e 6 Dezembro Curitiba PR http://www.estacaovoip.com.br _______________________________________________ LIsta de discussões AsteriskBrasil.org AsteriskBrasil@listas.asteriskbrasil.org http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil _______________________________________________ Acesse o wiki AsteriskBrasil.org: http://www.asteriskbrasil.org