database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 7123 게시물 읽기
No. 7123
안녕하십니까 고수님들 c언어 연동 질문있습니다.
작성자
도와주세요
작성일
2018-05-09 19:55
조회수
2,290

안녕하십니까 고수님들 c언어 연동 질문있습니다.

 

ODBC로 C언어랑 연동해서 플젝을 진행중입니다.

 

제가 지금 구현하고싶은것이 수업에서 질문별로 횟수를 조사하고싶은데

 

다른 질문이면 새로운 삽입문을 작성하고

 

같은 질문이면 변경문이 아니고 삽입문을 사용하되 count값을 1증가시켜서 삽입하고싶은게 취지입니다.

 

콘솔에서 제가 입력한 문자열과 DB에 저장된 문자열을 비교하여 값이 같으면 COUNT값을 증가시켜보고 싶은데요

 

printf("질문을 입력 : ");

scanf("%s", question);

SQLExecDirect(hStmt, (SQLCHAR *)"SELECT QUERY, COUNT FROM CLASS", SQL_NTS);

SQLINTEGER INUM10, INUM11;

SQLBindCol(hStmt, 1, SQL_C_LONG, &c_query, sizeof(c_query), &INUM10);

SQLBindCol(hStmt, 2, SQL_C_CHAR, &c_count, sizeof(c_count), &INUM11);

 

while (SQLFetch(hStmt) != SQL_NO_DATA)

{

if (strcmp(c_query, question) == 0)

{

c_count = c_count + 1;

printf("횟수 : %d", c_count);

}

else

{

printf("횟수 : %d", c_count);

}

}

 

이런식으로 짜는게 맞는건가요?

 

최종적으로 하고싶은것이 제가 콘솔에서 입력한 값과 디비에 저장된 값이 같으면 1이 증가된 count값을 삽입문의 속성값으로 쓰고싶은데 잘되지 않습니다.

 

도움을 주시면 감사하겠습니다. 고수님들

 

이 글에 대한 댓글이 총 1건 있습니다.

0. 일단 고칠만한 부분
0.1. QUERY가 동일한 경우 중복해서 DB에 기록되는 문제가 있음 <- 설계상 오류

0.2. C에서 변수의 이름으로 else를 사용하는 것은 언어의 reserved keyword이기에 아예 사용 불가능하지만 이와 유사하게 COUNT 처럼 이미 DB에서 사용되는 keyword를 컬럼명 등으로 지정하는 것은 가능은 하지만 썩 바람직하지 않음.
 
1. WHERE 절을 이용하면 입력받은 질문과 일치하는 행을 DB에서 찾을 수 있음. 지금처럼 모든 행을 가져와서 다 하나하나 비교하는 방식은
1.1. 데이터를 엄청 가져와야 함 그리고 써먹는 건 꼴랑 몇 건 되지 않음
1.2. C로 구현하는 것보다 훨씬 효율적으로 찾을 수 있게 DB에 기능이 있음
 
2. MAX( COUNT )를 이용하면 가장 큰 COUNT 값을 단 방에 찾아올 수 있음.
 
아마 쿼리문이
SELECT MAX( COUNT ) AS max_count
FROM CLASS
WHERE QUERY = N'질문'
정도라면 while 따위 다 필요 없는...

 

우욱님이 2018-05-10 10:45에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7127MSSQL VS MARIA [1]
DBA
2018-07-02
2168
7126테이블 인덱스 구조 조언좀 부탁드립니다 [4]
남현진
2018-06-25
2426
7124조건문에 CASE LIKE 구문을 같이 썼을때 왜 문제일까요? [1]
김태옥
2018-06-12
2151
7123안녕하십니까 고수님들 c언어 연동 질문있습니다. [1]
도와주세요
2018-05-09
2290
7122열을 행으로 바꾸고 싶습니다. 도와주세요. [2]
왕초보왕초보
2018-04-19
2353
7121동적 쿼리 질문입니다. [1]
도와주세요
2018-04-17
2249
7120도움을 주시면 감사하겠습니다. [2]
고수님들
2018-04-12
2081
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다