여러사람들이 도와 줘서 이정도 햇는데 오늘 하루만 FindComponent로
하루종일 보내는군요...^^ 아래는 제가 코딩한건데여...(사실은 복사만^^)
num := StrToInt(NumEdit1.Text);
With COM_DM.RS1 do
begin
Close;
Sql.Clear;
Sql.Add(' CREATE TABLE ' + Trim(Edit3.Text) + '( ');
for aa := 1 to HyperGrid1.ColCount -1 do
begin
if aa < HyperGrid1.ColCount -1 then
begin
// showmessage(inttostr(aa));
With FindComponent('FEdit' + IntToStr(num)) as TEdit do
begin
Sql.Add(Format(' %s %s NULL,' , ['ZZ_'+FormatFloat('0000',aa), text]));
end;
end
else If aa = HyperGrid1.ColCount -1 then
begin
With FindComponent(Trim('FEdit' + IntToStr(aa))) as TEdit do
begin
Sql.Add(Format(' %s %s NULL' , ['ZZ_'+FormatFloat('0000',aa), Text]));
end;
end;
end;
같은 문장이 두개 있는이유는 SQL마지막에 콤마를없앨려구요
에디트박스 10개 이름은 FEdit1...FEdit10 있습니다.
복잡한거 같아서 지가 무엇을 하는지 알려드릴께요..
지금 엑셀파일에 있는것을 그리드에 가지구 와서 가지구 온 내용을
SQL에 저장할려고 합니다...
저장할때 전 타입을 지정할려고 합니다.
원래는 타입이랑 필드명을 입력받을려고 했는데
with 문에서 FindComponent를 한번에 사용할수 없다기에 포기했구여
선택한게 타입을 입력을 받는거에여 ^^
테이블명은 나중에 수정을 하면
되는데 타입은 그냥 제가 원하는 타입으로 저장할려고요
화면에는 edit박스가 10개가 있습니다...
엑셀파일을 불러올때 colcount만큼 edit박스를 활성화 시키고
활성화 시킨 edit.text 값을 타입명으로 받을려고 하는거거던여..
아직까지 왜 안되는지 이유를 모르겠네여...
지금현재상황에서 진척이 없네여...
쇼메시지로는 카운트잘넘어가거던여..
근데 에디트박스로 입력받은 내용을 FindComponent를 사용하여서 저장할려고 하는데 안디네여..
어디가 문제지좀 알려주세여...
결과값이 이로케 나오거던여..
CREATE TABLE aa(
ZZ_0001 NULL,
ZZ_0002 NULL,
.
.
ZZ_0009 NULL,
ZZ_0010 NULL
)
제가 원하는 결과값은
CREATE TABLE aa(
ZZ_0001 VARCHAR(1) NULL,
ZZ_0002 VARCHAR(2) NULL,
.
.
ZZ_0009 VARCHAR(9) NULL,
ZZ_0010 VARCHAR(10) NULL
)
입니다..
에디트박스에 입력할 내용은 VARCAHR(1) - VARCHAR(10)까지 입력할꺼거던여...근데 안나와요..
여러사람이 말하는데로 했는데도 잘안되요...어디가 문제지좀 알려주세여
값은 TEdit 에서 가져오는데..
왜 colcount 로 loop 를 돌리는지 이해가 안감..
차라리..숫자로 명시를 하세요.
그리고 Num 은 몬지...
Loop 를 돌면 aa를 활용해야 할텐데..
정작 사용하는 건 num 이네요.