BDE를 통해 Interbase에 연결된 TQuery
의 많은 부분에서이 오류가 발생합니다. 정확한 메시지는 다음과 같습니다Interbase 오류 : SQLDA 누락 또는 부정확 버전 또는 잘못된 숫자/변수 유형
General SQL Error. Dynamic SQL Error, SQL error code = -804, SQLDA missing or incorrect version, or incorrect number/type of variables.
메시지는 내가 열려고로/디자인 타임에 TQuery
을 편집하거나 게시물이 런타임에 완료되면 즉시 나타납니다. 런타임에 게시 작업의 경우, 게시 전에 테이블을 준비하면 게시물이 멋지게 완료된다는 것을 발견했습니다.
나는 Craig Stunz's Weblog about same error을 읽었습니다. 내가 가진 매개 변수는 모두 정수입니다. 데이터베이스가 작고 Interbase 2009입니다. 오류 메시지 (선택, 삭제, 업데이트 등)를 표시하는 쿼리에는 특별한 패턴이 없습니다. Delphi에서 쿼리를 실행하면됩니다.
테이블에 숫자 데이터 형식 (15,2)이 있습니다. 2009.
실제 ODS는 (인터베이스 9) 13.1이다 인터베이스로 방언 1 -
테이블은 인터베이스 버전 5에서 복원/백업왔다.
UDF가 없습니다.
잘못 어떤 생각?
[업데이트]하지 오류를 보여주는/오류를 보여주는 쿼리의
샘플 :
없음 오류 :
select MASTER_ID, GL_ACCT_DR, GL_ACCT_CR,
VENDOR_ID, VENDOR_CODE,
ORDER_NO, ORDER_DATE, INVOICE_NO, INVOICE_DATE,
DESCRIP, BUYER, SHIP_VIA, FOB, IS_FREIGHT_PREPAID,
IS_TAXABLE, TERMS_ID, TERMS_CODE,
DISC_DAYS_OR_DATE, DISCOUNT_PCT, NET_DAYS_OR_DATE,
BILL_TO_LOC_ID, SHIP_TO_LOC_ID,
BILL_TO_LOC_CODE, SHIP_TO_LOC_CODE,
DISCOUNT_DATE, DUE_DATE
from P_JRNTRN where
ENTITY_DB_ID = :PRIMARY_DB_ID and
SRC_MODULE = 'PJ'
order by INVOICE_NO
매개 변수는 정수이다.
오류 :
select * from P_JRNTRN where
BATCH_ID = :BATCH_ID
order by MASTER_ID
매개 변수는 정수이다.
[]이 문제를 해결할 수 없어서 BDE 대신 IBDAC로 옮겼습니다. 나는 더 이상 오류가 없습니다. 감사합니다.
샘플 쿼리를 게시 할 수 있습니까? 오래 전이 오류로 인해 문제가 있었지만 문제가 무엇인지 기억하기가 어려워요. 나는 우리가 캐릭터 세트 불일치로 그것을보고있는듯한 느낌이 들었지 만, 당신에게는 그렇지 않다. – robsoft
문자 집합이 기본값입니다. 나는 필드 유형 불일치가 거의 없다는 것을 알고있다. (번역본은 interbase 5 t0 9). 나는 몇 가지 샘플 쿼리를 게시 할 것이다. - 고마워. – volvox
아, 편집을 게시 해 주셔서 감사합니다. 해당 테이블에 다른 필드가 있습니까 (select *와 select [named] 사이의 차이점을 생각해보십시오)? 해당 테이블의 스키마를 게시 할 수 있습니까?이전 Interbase 및 긴 필드/sproc 이름에 문제가있어서 이상하고 예기치 않은 일을 일으켰지 만 여기에도 문제가 있다고 생각하지 않습니다. (처음 12 자만 사용하고 기억이 약합니다.) 이전 Interbase에서 작동하는 이유와 새로운 Interbase에서 작동하지 않는 이유를 보지 마십시오. 다른 방법이 될 가능성이 더 큽니다. – robsoft