//먼저 간단한 성적처리 플글밍을 짜보려고 하는 데요
//소스는 이겁니다. 델파이에요
procedure TForm1.Button2Click(Sender: TObject);
begin newunit;
end;
procedure TForm1.newunit;
begin
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '0'; // 구거
Edit4.Text := '0'; // 영어
Edit5.Text := '0'; // 솩
Edit1.SetFocus;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
num, kor, eng, mat, tot : integer;
avg : double;
s : string;
begin
num := strtoint(Edit1.text); // 학생 버노
kor := strtoint(Edit3.Text);
eng := strtoint(Edit4.Text);
mat := strtoint(Edit5.Text);
tot := kor+eng+mat;
avg := tot/3;
s := ''; // 여기서 이건 왜 필요한가요 ?
s := 'insert into mem ( '+
'num, s_name, s_kor, s_eng, s_math, s_tot, s_avg) values
( '+
''''+Edit1.Text+''','''+Edit2.Text+''','+
''+inttostr(kor)+','+inttostr(eng)+','+inttostr(mat)+','+
''+inttostr(tot)+','+Floattostr(avg)+')';
// '' ->" 로 쓰인다는 건 알겠는데, ↑ 이문장에서 따옴표가
// 어떻게 응용된건지 이해가 잘 안되네요.. ㅡㅡa
// 'insert ~~' 는 쿼리문 문맥인데 거기다 + 로 뒤에 쿼리문을 더해
준건 알겠거등요
// 근데, [ ''''+Edit1.Text+''','''+ ]<- 요기에서
// ''+Edit1.Text+'' <-- 요러케 묶일 수도 있나요 ?
// 그럼 앞에 '' (따옴표 4개중 앞에꺼 2개) 는 어디다 연결되는건
지 --?
// 그리고 [''+inttostr(kor)+] 하거 [''+inttostr(tot)+] 에서
// 앞에 따옴표 2 개가 붙은 거는 머져 ? 쿼리문에 value 문에 값넣
을 때 공란으로 넘기는 부분인가요 ?
Q1.Close;
Q1.sql.Clear;
Q1.sql.add(s);
Q1.ExecSQL;
// 친구녀석이 여기 ↖이 부분들은 전형적인 순서(--?) 라서 거의
// 외우다 시피 쓴다던데 이게 몬가요 ?
gridshow;
end;
//----
procedure TForm1.gridshow;
begin
Q1.Close;
Q1.sql.Clear;
Q1.sql.add('Select * from mem');
Q1.OPen;
// 여기서 오픈 하면 그리드에 디비내용이 확 나타나는거져 ?
end;
질문이 헷갈리네여...^^;;
>
> s := ''; // 여기서 이건 왜 필요한가요 ?
그냥 변수 s를 초기화 하는겁니다. 위에서 초기화도 하지 않았고 사용되지도
않아서 빠져도 되긴 하지만, 초기화 하는 습관을 가지도록 하세요...
> s := 'insert into mem ( '+
> 'num, s_name, s_kor, s_eng, s_math, s_tot, s_avg) values
> ( '+
> ''''+Edit1.Text+''','''+Edit2.Text+''','+
> ''+inttostr(kor)+','+inttostr(eng)+','+inttostr(mat)+','+
> ''+inttostr(tot)+','+Floattostr(avg)+')';
>
> // '' ->" 로 쓰인다는 건 알겠는데, ↑ 이문장에서 따옴표가
> // 어떻게 응용된건지 이해가 잘 안되네요.. ㅡㅡa
상당히 복잡한 코딩입니다요!! -_-;;
우선 싱글쿼터의 용도는 SQL구문에서 Insert 문에서 보면..
insert into mem (field1,field2) values ('var1','var2')
이런식으로 들어갑니다. 물론 스트링형태일때 --;; 숫자라면 값에 싱글쿼터를 붙히지
않아도 됩니다.
> // 'insert ~~' 는 쿼리문 문맥인데 거기다 + 로 뒤에 쿼리문을 더해
> 준건 알겠거등요
> // 근데, [ ''''+Edit1.Text+''','''+ ]<- 요기에서
> // ''+Edit1.Text+'' <-- 요러케 묶일 수도 있나요 ?
> // 그럼 앞에 '' (따옴표 4개중 앞에꺼 2개) 는 어디다 연결되는건
> 지 --?
> // 그리고 [''+inttostr(kor)+] 하거 [''+inttostr(tot)+] 에서
> // 앞에 따옴표 2 개가 붙은 거는 머져 ? 쿼리문에 value 문에 값넣
> 을 때 공란으로 넘기는 부분인가요 ?
@.@ 에거 정말 헷갈리는군요 -_-;; 저 코드..제대로 돌긴 하나요?? 에러 날꼬
같은뎅?? 중간중간에 + 를 빼먹은듯 하네요! --;;
일단 ''' 이렇게 하면 싱글쿼터(')을 찍기위한것입니다. 즉 네개가 찍혔다면..
두개씩 나눌수 없다는거죠 --;; 두개씩 나눌려면 중간에 + 로 문자열덧셈을 하
던가..-_-;;
s := 'inesrt into mem (num,s_name,s_kor,s_eng,s_math,s_tot,s_avg) values';
s := s+'('
s := s+'''+Edit1.Text+'''+','+'''+Edit2.Text+'''+','+IntToStr(kor)+',';
s := s+IntToStr(eng)+','+IntToStr(mat)+','+IntToStr(tot)+',';
s := s+FloatToStr(avg)+')';
이렇게 함 해보시죠...흠 근뎅 eng,mat같은 변수를 모두 스트링으로 바꾸었네요???
그럼 문자필드에 값을 넣을꺼 같은뎅...싱글쿼터를 붙히셔야 될듯...--;;
상당히 복잡한 방법으로 코딩을 하는군요!! 쉬운방법으로 하세요...^^''
강좌,팁란같은데 보면, 쿼리코딩부분이 많을꺼에요...거 함 보세요....
>
> Q1.Close;
> Q1.sql.Clear;
> Q1.sql.add(s);
> Q1.ExecSQL;
> // 친구녀석이 여기 ↖이 부분들은 전형적인 순서(--?) 라서 거의
> // 외우다 시피 쓴다던데 이게 몬가요 ?
네 거의 전형적인 순서 입니다. -_-;;
Q1.Close; <- 일단 쿼리를 닫습니다.
Q1.Sql.Clear; <- 쿼리의 SQL 스크립트내용을 몽땅 지웁니다.
Q1.Sql.Add(s); <- 쿼리의 SQL 스크립트를 채웁니다. 위의 헷갈리는 SQL--;;
Q1.ExecSQL; <- 쿼리를 실행합니다.
Select 문은 Open이고, 나머지는 ExexSQL 메소드를 사용합니다. 그리고 쿼리를
닫을필요까지는 없고 그냥 Sql.Clear만 해도 돼요!! (Select문 빼공)
> Q1.Close;
> Q1.sql.Clear;
> Q1.sql.add('Select * from mem');
> Q1.OPen;
> // 여기서 오픈 하면 그리드에 디비내용이 확 나타나는거져 ?
흠..넹..그리드에 Q1이 연결되어 있으면 Open하는 동시에 브라우징 됩니다.
그럼..휘리릭~~ (아 정신없어랑..)
bLue bLood.