> > > ===========================================
> > > procedure TForm1.Button2Click(Sender: TObject);
> > > var
> > > num, name, kor, eng, math, tot : integer;
> > > ave : double;
> > > str : string;
> > > begin
> > > num := strtoint(Edit1.Text);
> > >
> > > kor := strtoint(Edit3.Text);
> > > eng := strtoint(Edit4.Text);
> > > math := strtoint(Edit5.Text);
> > >
> > > tot := kor+eng+math;
> > > ave := tot/3;
> > >
> > > str := '';
> > > str := 'insert into student (' +
> > > 'num, s_name, kor, eng, math, tot, ave ) values ( '+
> > > ''''+Edit1.Text+''','''+Edit2.Text+''','+
> > > ''+inttostr(kor)+','+inttostr(eng)+','+inttostr(math)+','+
> > > ''+inttostr(tot)+','+Floattostr(ave)+')';
> > >
> > > Qy1.Close;
> > > Qy1.sql.clear;
> > > Qy1.sql.add(str);
> > > Qy1.ExecSql;
> > >
> > > gridshow;
> > > end;
> > > ===========================================
우선 소스는 위와 같습니다만,
str := 'insert into student (' +
'num, s_name, kor, eng, math, tot, ave ) values ( '+
''''+Edit1.Text+''','''+Edit2.Text+''','+
''+inttostr(kor)+','+inttostr(eng)+','+inttostr(math)+','+
''+inttostr(tot)+','+Floattostr(ave)+')';
여기에서 밑에 두 줄 앞에 있는 [ '' ] 의 의미가 잘 이해가 안되는 군요 ㅡㅡ;
(( ''''+Edit1.Text+''','''+Edit2.Text+''','+ ))
이 부분은 '''' 가 쿼리문에서 ' 로 찍기 위한것으로 Edit1.Text 즉 텍스트문이기 때문에 따옴표 까지 같이 들어가겠죠 ?
그런데 숫자 부분인 밑에 두 줄에서 맨 앞에 있는 [ '' ] 이 부분이 이해가 안갑니다.
토탈과 평균은 제외하고 각 과목들만 묶였군요..
따옴표 하나는 '''' 일텐데 달랑 두 개 만 찍으면 무슨 의미가 되는거죠 ?
앞에 텍스트 문은 ''',' 으로 끝났으니까 [ ', ] 따옴표 닫고 콤마까지 찍히는 거겠죠?
그 담에 '' 를 더해주면.. 에궁.. 모르겠습니다... ㅡㅡa 여기서 막히네요..
위의 코딩데루면 테이터베이스에 다음과 같은 행태루 데이터가 삽입 들어가겠져?
num s_name kor eng math tot avg
------------------------------------
insert into student( num, s_name, kor, eng, math, tot, ave ) values
('1','김개똥',90,80,30,220,67 );
insert into student( num, s_name, kor, eng, math, tot, ave ) values
('2','홍길똥',80,80,80,240,80 );
확실히 이해를 못해서리.. 설명좀 부탁드립니다.
과목도 숫자 총점 토탈도 숫자인데 [ '' ] <- 이러케 달랑 두 개만 찍고 시작을 하니..
도통이해가 안되네요. 중간에 필드가 하나씩 더 있는 것두 아닌데... ㅡㅡ;;
왜 밑에 두 줄은 '' 로 시작하나요 ? 널값이라고 설명을 듣긴 한것 같은데...
해당되는 필드가 없는데도 널 값이 필요한가요 ?
없이 해도 아마 동일한 결과가 나올걸로 예상되는데 아닌가요?
델처버 wrote:
> > > > ===========================================
> > > > procedure TForm1.Button2Click(Sender: TObject);
> > > > var
> > > > num, name, kor, eng, math, tot : integer;
> > > > ave : double;
> > > > str : string;
> > > > begin
> > > > num := strtoint(Edit1.Text);
> > > >
> > > > kor := strtoint(Edit3.Text);
> > > > eng := strtoint(Edit4.Text);
> > > > math := strtoint(Edit5.Text);
> > > >
> > > > tot := kor+eng+math;
> > > > ave := tot/3;
> > > >
> > > > str := '';
> > > > str := 'insert into student (' +
> > > > 'num, s_name, kor, eng, math, tot, ave ) values ( '+
> > > > ''''+Edit1.Text+''','''+Edit2.Text+''','+
> > > > ''+inttostr(kor)+','+inttostr(eng)+','+inttostr(math)+','+
> > > > ''+inttostr(tot)+','+Floattostr(ave)+')';
> > > >
> > > > Qy1.Close;
> > > > Qy1.sql.clear;
> > > > Qy1.sql.add(str);
> > > > Qy1.ExecSql;
> > > >
> > > > gridshow;
> > > > end;
> > > > ===========================================
>
> 우선 소스는 위와 같습니다만,
> str := 'insert into student (' +
> 'num, s_name, kor, eng, math, tot, ave ) values ( '+
> ''''+Edit1.Text+''','''+Edit2.Text+''','+
> ''+inttostr(kor)+','+inttostr(eng)+','+inttostr(math)+','+
> ''+inttostr(tot)+','+Floattostr(ave)+')';
>
> 여기에서 밑에 두 줄 앞에 있는 [ '' ] 의 의미가 잘 이해가 안되는 군요 ㅡㅡ;
> (( ''''+Edit1.Text+''','''+Edit2.Text+''','+ ))
> 이 부분은 '''' 가 쿼리문에서 ' 로 찍기 위한것으로 Edit1.Text 즉 텍스트문이기 때문에 따옴표 까지 같이 들어가겠죠 ?
>
> 그런데 숫자 부분인 밑에 두 줄에서 맨 앞에 있는 [ '' ] 이 부분이 이해가 안갑니다.
> 토탈과 평균은 제외하고 각 과목들만 묶였군요..
>
> 따옴표 하나는 '''' 일텐데 달랑 두 개 만 찍으면 무슨 의미가 되는거죠 ?
> 앞에 텍스트 문은 ''',' 으로 끝났으니까 [ ', ] 따옴표 닫고 콤마까지 찍히는 거겠죠?
> 그 담에 '' 를 더해주면.. 에궁.. 모르겠습니다... ㅡㅡa 여기서 막히네요..
>
> 위의 코딩데루면 테이터베이스에 다음과 같은 행태루 데이터가 삽입 들어가겠져?
>
> num s_name kor eng math tot avg
> ------------------------------------
> insert into student( num, s_name, kor, eng, math, tot, ave ) values
> ('1','김개똥',90,80,30,220,67 );
> insert into student( num, s_name, kor, eng, math, tot, ave ) values
> ('2','홍길똥',80,80,80,240,80 );
>
> 확실히 이해를 못해서리.. 설명좀 부탁드립니다.
> 과목도 숫자 총점 토탈도 숫자인데 [ '' ] <- 이러케 달랑 두 개만 찍고 시작을 하니..
> 도통이해가 안되네요. 중간에 필드가 하나씩 더 있는 것두 아닌데... ㅡㅡ;;
>
> 왜 밑에 두 줄은 '' 로 시작하나요 ? 널값이라고 설명을 듣긴 한것 같은데...
> 해당되는 필드가 없는데도 널 값이 필요한가요 ?