Q&A

  • 따옴표 사용법 좀 갈쳐주세요
//먼저 간단한 성적처리 플글밍을 짜보려고 하는 데요

//소스는 이겁니다. 델파이에요



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;

1  COMMENTS
  • Profile
    ^-_-^ 2001.02.22 03:12
    yo`



    질문이 헷갈리네여...^^;;



    >

    > 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.