>제발 답변좀 해주세요...
아무런 답변이라도 좋아요.
도움이 될 수 있는 자료라면 아무거나 좋아요
void search(PGconn *conn)
> {
> int i, j, kind;
> const char *psql;
> char search[100], trash[80], search_value[100] = "\0";
> char sql[100] = ""DECLARE search_sql CURSOR FOR select * from kuetbord where";
> printf("검색 종류를 선택해주세요.\n");
> printf("1.이름\t2.제목\t3.내용\n");
> scanf("%d", &kind);
> gets(trash);
> printf("검색어를 입력해주세요\n");
> scanf("%s", search);
> gets(trash);
> strcat(search_value, " %");
> strcat(search_value, search);
> strcat(search_value, "%"");
> res = PQexec(conn, "BEGIN");
> if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
> {
> fprintf(stderr,"BEGIN 명령이 실행되지 않았습니다\n");
> PQclear(res);
> PQfinish(conn);
> exit(1);
> }
> PQclear(res);
>
> switch (kind)
> {
> case 1:
> {
> strcat(sql," b_name like");
> strcat(sql, search_value);
> break;
> }
> case 2:
> {
> strcat(sql," b_title like");
> strcat(sql, search_value);
> break;
> }
> case 3:
> {
> strcat(sql," b_content like");
> strcat(sql, search_value);
> break;
> }
> default:
> {
> printf("잘못입력 하셨습니다 다시 입력해주세요\n");
> start_menue();
> break;
> }
> }
> psql = sql;
> printf("%s", psql);
> res = PQexec(conn, psql);
> if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
> {
> fprintf(stderr,"DECLARE 명령이 실행되지 않았습니다\n");
> PQclear(res);
> PQfinish(conn);
> exit(1);
> }
> PQclear(res);
> res = PQexec(conn, "FETCH ALL IN search_sql");
> if (!res || PQresultStatus(res) != PGRES_TUPLES_OK)
> {
> fprintf(stderr,"FETCH 명령이 실행되지 않았습니다\n");
> PQclear(res);
> PQfinish(conn);
> exit(1);
> }
> printf("%d 개의 내용이 검색 되었습니다\n", PQntuples(res));
> if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
> {
> fprintf(stderr,"SQL문이 실행되지 않았습니다\n");
> }
> for (j = 0; j < PQnfields(res); j++)
> {
> printf("%/10s", PQfname(res,j));
>
> }
> printf("\n");
>
> for (i = 0; i < PQntuples(res); i++)
> {
> for (j = 0; j < PQnfields(res); j++)
> {
> printf("%/10s", PQgetvalue(res, i, j));
> }
> printf("\n");
> printf("*********************************************************\n");
> }
> PQclear(res);
> res = PQexec(conn, "CLOSE search_sql");
> PQclear(res);
> res = PQexec(conn, "COMMIT");
> PQclear(res);
> PQfinish(conn);
>
> }
>
> 윗쪽에 보시면 psql 이라는 변수에값을
> "DECLARE search_sql CURSOR FOR select * from kuetbord where b_name like %text%" 라고 값을주고 r
> es = PQexec(conn, psql) 이런식으로 함수를 정의 해보왔는
> 데 에러가 나오던데요.. PQexec함수의 원형은 PQexec(conn, const char *ptr)인데
> 왜 실행이 안돼는지요....이해가 너무 안돼요 변수명을 써주면 안돼는 이유가 뭘까요. 알려 주세요 감
> 사합니다.
>
|