Q&A

  • select 에러...
var

g_id : integer;







query1.close;

query1.sql.clear;

query1.sql.Add('insert into group_table(G_name)');

query1.sql.Add('values(:G_name)');

query1.parambyname('G_name').AsString := g_gname; //G_name에 g_gname

query1.ExecSQL;



g_id := query1.sql.add('select G_id from group_table

where G_namee=g_gname');

showmessage(inttostr(g_id));



g_gname이 가지고 있는 값을 테이블에 넣고.. 넣을때 G_id는 자동으로 입력이

되거든요... 테이블은 SQL 7.0 이구요....



여기서 방금 들어간 G_name와 변수 g_gname와 비교를 해서 같은면 G_id값을 가져와야

하는데 잘 않되는군요.. 아시는분 좀 봐주세요..



3  COMMENTS
  • Profile
    김재억 2000.12.16 05:28
    query1.close;

    query1.sql.clear;

    query1.sql.Add('insert into group_table(G_name)');

    query1.sql.Add('values(:G_name)');

    query1.parambyname('G_name').AsString := g_gname; //G_name에 g_gname

    query1.ExecSQL;



    Query1.Close;

    Query1.Sql.Clear;

    query1.sql.add('select G_id from group_table where G_name=:G_name');

    Query1.ParamByName('G_Name').AsString := g_gname;

    Query1.Open;

    showmessage(inttostr(Query1.FieldbyName('g_id').AsInteger));



    위의 소스대로 고쳐보세요. 그럼 G_ID값이 나올검돠.



    근데.. 개인적인 생각을 드린다면요...

    SQL 서버 7.0에 님이 원하시는 대로 입력된 값을 확인하는 절차가 필요하다면요...

    Stored Procedure를 사용하시는게 어떨지....

    위와 같이 입력Query와 Select Query를 넣어서 리턴값을 받아내는 프로시져를 만들면 어떨지 싶네요.



    delhpilove wrote:

    > var

    > g_id : integer;

    >

    >

    >

    > query1.close;

    > query1.sql.clear;

    > query1.sql.Add('insert into group_table(G_name)');

    > query1.sql.Add('values(:G_name)');

    > query1.parambyname('G_name').AsString := g_gname; //G_name에 g_gname

    > query1.ExecSQL;

    >

    > g_id := query1.sql.add('select G_id from group_table

    > where G_namee=g_gname');

    > showmessage(inttostr(g_id));

    >

    > g_gname이 가지고 있는 값을 테이블에 넣고.. 넣을때 G_id는 자동으로 입력이

    > 되거든요... 테이블은 SQL 7.0 이구요....

    >

    > 여기서 방금 들어간 G_name와 변수 g_gname와 비교를 해서 같은면 G_id값을 가져와야

    > 하는데 잘 않되는군요.. 아시는분 좀 봐주세요..

    >

  • Profile
    성더기 2000.12.16 03:31
    delhpilove wrote:

    > var

    > g_id : integer;

    >

    >

    >

    > query1.close;

    > query1.sql.clear;

    > query1.sql.Add('insert into group_table(G_name)');

    > query1.sql.Add('values(:G_name)');

    > query1.parambyname('G_name').AsString := g_gname; //G_name에 g_gname

    > query1.ExecSQL;

    >

    > g_id := query1.sql.add('select G_id from group_table

    > where G_namee=g_gname');

    > showmessage(inttostr(g_id));

    >

    > g_gname이 가지고 있는 값을 테이블에 넣고.. 넣을때 G_id는 자동으로 입력이

    > 되거든요... 테이블은 SQL 7.0 이구요....

    >

    > 여기서 방금 들어간 G_name와 변수 g_gname와 비교를 해서 같은면 G_id값을 가져와야

    > 하는데 잘 않되는군요.. 아시는분 좀 봐주세요..

    >



    일단 위처럼 코딩을 하셧다는 전제하에서 말씀드리면..

    G_name이 스트링타입일 경우는

    where G_namee=g_gname');

    요부분을 where G_name = '''+g_game+''''); 일케 바꿔 보시구여

    숫자타입일 경우는

    where G_name = '+g_game+''); 일케 바꿔 보세여

    거럼 20000

  • Profile
    delhpilove 2000.12.16 04:14
    성더기 wrote:

    > delhpilove wrote:

    > > var

    > > g_id : integer;

    > >

    > >

    > >

    > > query1.close;

    > > query1.sql.clear;

    > > query1.sql.Add('insert into group_table(G_name)');

    > > query1.sql.Add('values(:G_name)');

    > > query1.parambyname('G_name').AsString := g_gname; //G_name에 g_gname

    > > query1.ExecSQL;

    > >

    > > g_id := query1.sql.add('select G_id from group_table

    > > where G_namee=g_gname');

    > > showmessage(inttostr(g_id));

    > >

    > > g_gname이 가지고 있는 값을 테이블에 넣고.. 넣을때 G_id는 자동으로 입력이

    > > 되거든요... 테이블은 SQL 7.0 이구요....

    > >

    > > 여기서 방금 들어간 G_name와 변수 g_gname와 비교를 해서 같은면 G_id값을 가져와야

    > > 하는데 잘 않되는군요.. 아시는분 좀 봐주세요..

    > >

    >

    > 일단 위처럼 코딩을 하셧다는 전제하에서 말씀드리면..

    > G_name이 스트링타입일 경우는

    > where G_namee=g_gname');

    > 요부분을 where G_name = '''+g_game+''''); 일케 바꿔 보시구여

    > 숫자타입일 경우는

    > where G_name = '+g_game+''); 일케 바꿔 보세여

    > 거럼 20000



    일케 했는데 값은 2라는 값만 나오네요...

    어케 된일인지...

    g_id := query1.sql.add('select G_id from group_table

    where G_namee='''g_gname''''');

    일케 하먼 g_id변수가 G_id값을 받아서 가지고 있나요..

    아님 다른 어떤곳에 값이 있는지.. 에러는 없는데

    값이 제대로 나오질 않네요..