이상학 wrote:
> 소스의 스트링 그리드에 있는 내용을 받아서 .. sql 문으로 테이블에 저장하려고 하는데..
> insert 문이 잘못 됐다고..에러메세지가 나옵니다.
> for문에서의 내용은...원래 그런거라...그냥 넘어가 주세요..
> fieldbyname 할때는 잘되는데...param으로 오면...왜 이러는지..
> 좀..도와 주세요....
>
>
> for j := 2 to RowNum-1 do
> begin
> try
> for i := 0 to ColNum-1 do
> begin
> with Query1 do
> begin
> Close;
> SQL.Clear;
> SQL.Add('Insert into user ');
> SQL.Add('(Nalza, Sigan, Jangbi, Pcroom, Pclan, Kornet, Hitel, Inet, Netsgo)');
> SQL.Add('values ');
> SQL.Add(' (:p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9)');
> ParamByName('p1').Asdatetime := Date;
> ParamByName('p2').Asdatetime := Time;
> ParamByName('p3').AsString := StringGrid1.Cells[0,j];
> ParamByName('p4').AsInteger := StrToInt(StringGrid1.Cells[1,j]);
> ParamByName('p5').AsInteger := StrToInt(StringGrid1.Cells[2,j]);
> ParamByName('p6').AsInteger := StrToInt(StringGrid1.Cells[3,j]);
> ParamByName('p7').AsInteger := StrToInt(StringGrid1.Cells[4,j]);
> ParamByName('p8').AsInteger := StrToInt(StringGrid1.Cells[5,j]);
> ParamByName('p9').AsInteger := StrToInt(StringGrid1.Cells[6,j]);
> Execsql;
> end;
> end;
> except
> end;
> end;
>
Sql문 상으로 이유를 모르겠군요..
그럼 방법을 바꾸어서 UpdateSQL을 사용하셔서
다음과 같이 해보시던지
for i:= 1 to StringGrid1.RowCount-1 do
begin
if StringGrid1.Cells[1,i] <> '' then
begin
Query1.Append;
Query1Nalja.Value := StringGrid1.Cells[1,i];
....................................
....................................
end;
end;
아니면 그리드상에서 필드타입을 확인하셔야 겠네요
아니면 데스트하실때 값들을 CONSTANT로 주셔서 각필드에 대한 걸
확인하셔야 겠지요..