안녕하세요..
델파이를 공부하는 학생입니다.
제가요..
먼저 Database Desktop을 이용하여 Paradox 7을 사용해서 데이타 베이스를 생성했습니다.
필드는
code N 주키
carnam A 30
name A 10
phone A 14
phone2 A 13
post A 7
addr A 60
bigo A 255
이렇게 주었고요...
Sql Explorer에서 연결시켜주었습니다.
그리고 델파이에서 컴포넌트 배치하고 Insert를 할려면 에러가 생깁니다.
물론 Select 는 잘됩니다.
Insert문은..
With Query1 do
Begin
Close;
Sql.Clear;
Sql.Add('Insert into test');
Sql.Add('(code, carnam, name, phone, phone2, post, addr,
bigo)');
Sql.Add('Values(:n1, :n2, :n3, :n4, :n5, :n6, :n7, :n8)');
Parambyname('n1').AsInteger := StrToInt(code_name.text);
Parambyname('n2').AsString := carname_edit.Text;
Parambyname('n3').AsString := name_edit.Text;
Parambyname('n4').AsString := phone_edit.Text;
Parambyname('n5').AsString := phone2_edit.Text;
Parambyname('n6').AsString := post_edit.Text;
Parambyname('n7').AsString := addr_edit.Text;
Parambyname('n8').AsString := bigo_edit.Text;
ExecSql;
End;
에러는 .... EDBEngineError with message 'Type mismatch in expression.'
입니다.
이것을 Query1.Sql.Text로 보면
Insert into test
(code, carnam, name, phone, phone2, post, addr, bigo);
Values(:n1, :n2, :n3, :n4, :n5, :n6, :n7, :n8)
이렇게 나와버림니다.
물론 Query의 속성중 Param 값을 True로 해주었습니다.
이게 무슨 에러인지 모르겠습니다.
정말 이틀째 고민하고 있습니다.
고수님의 답변 부탁드립니다.
> 안녕하세요..
> 델파이를 공부하는 학생입니다.
>
> 제가요..
>
> 먼저 Database Desktop을 이용하여 Paradox 7을 사용해서 데이타 베이스를 생성했습니다.
> 필드는
> code N 주키
> carnam A 30
> name A 10
> phone A 14
> phone2 A 13
> post A 7
> addr A 60
> bigo A 255
>
> 이렇게 주었고요...
>
> Sql Explorer에서 연결시켜주었습니다.
> 그리고 델파이에서 컴포넌트 배치하고 Insert를 할려면 에러가 생깁니다.
> 물론 Select 는 잘됩니다.
> Insert문은..
>
> With Query1 do
> Begin
> Close;
> Sql.Clear;
> Sql.Add('Insert into test');
> Sql.Add('(code, carnam, name, phone, phone2, post, addr,
> bigo)');
> Sql.Add('Values(:n1, :n2, :n3, :n4, :n5, :n6, :n7, :n8)');
> Parambyname('n1').AsInteger := StrToInt(code_name.text);
> Parambyname('n2').AsString := carname_edit.Text;
> Parambyname('n3').AsString := name_edit.Text;
> Parambyname('n4').AsString := phone_edit.Text;
> Parambyname('n5').AsString := phone2_edit.Text;
> Parambyname('n6').AsString := post_edit.Text;
> Parambyname('n7').AsString := addr_edit.Text;
> Parambyname('n8').AsString := bigo_edit.Text;
> ExecSql;
>
> End;
>
> 에러는 .... EDBEngineError with message 'Type mismatch in expression.'
> 입니다.
> 이것을 Query1.Sql.Text로 보면
>
> Insert into test
> (code, carnam, name, phone, phone2, post, addr, bigo);
> Values(:n1, :n2, :n3, :n4, :n5, :n6, :n7, :n8)
> 이렇게 나와버림니다.
> 물론 Query의 속성중 Param 값을 True로 해주었습니다.
>
> 이게 무슨 에러인지 모르겠습니다.
> 정말 이틀째 고민하고 있습니다.
> 고수님의 답변 부탁드립니다.
안녕하세요.
파라독스에서 Number 는 실수형 입니다.
따라서 파라미터 가 안 맞아서 그런 에러가 나구요.
그러니 parambyname('n1').asfloat:=여기에 float 형의 값;
하시면 될겁니다.