2016-06-27 2 views
1
ADOQuerySelect.Close; 
    ADOQuerySelect.SQL.Add(' AND (дата_заказа between #'+dat+'# and #'+da+'#)'); 
    if ComboBox6.Text <> '' then 
    begin 
    ADOQuerySelect.Parameters.ParamByName('Name').Value := ComboBox6.Text ; 
     ADOQuerySelect.SQL.Add(' AND (Наименование = :Name)'); 
    end; 
ADOQuerySelect.Open; 

저는 MS Access에서 Delphi 2007을 사용합니다. 그리고 나는 매개 변수로 어떻게 작동하는지 지금 모른다. 이 코드에서는 오류가 있습니다 : 매개 변수 이름을 찾을 수 없습니다. 다른 많은 코드 변종을 시도했지만 모두 작동하지 않았습니다. ftstring 데이터 유형을 가진 GUI를 통해 매개 변수 이름을 추가합니다.Delphi 2007 Adoquery 매개 변수가 작동하지 않습니다.

답변

1

개체 검사기에서 ADOQuerySelect는 매개 변수 목록 중 '이름'을 가져야합니다.

또한 매개 변수 '이름'만들려면 다음 코드를 사용할 수 있습니다 : 코드에서 SQL을 변경

with ADOQuerySelect.Parameters.AddParameter do 
begin 
    Name := 'Name'; 
    DataType := ftString; 
end; 
+0

오브젝트 인스펙터에서 –

+0

SQL 테이블에 '이름'이 있습니까? –

+0

아니요, 그것은 sql 테이블에 있어야합니까? –

3

기존 매개 변수를 지 웁니다을, 그래서 당신이 시도 할 때 '이름'라는에는 매개 변수가 없습니다 그 값을 설정하십시오. 그런 다음 Name 매개 변수를 만들지 만 너무 늦었습니다. 당신은 모든 당신의 교체를 매개 변수를 사용한다

ADOQuerySelect.Close; 
ADOQuerySelect.SQL.Add(' AND (дата_заказа between #'+dat+'# and #'+da+'#)'); 
if ComboBox6.Text <> '' then 
begin 
    ADOQuerySelect.SQL.Add(' AND (Наименование = :Name)'); 
    ADOQuerySelect.Parameters.ParamByName('Name').Value := ComboBox6.Text ; 
end; 
ADOQuerySelect.Open; 

BTW :

은 문장의 순서를 변경

. 데이터베이스 드라이버가 변환 및 날짜 형식과 따옴표 값을 모두 처리하도록합니다.

관련 문제