|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Ошибка при выполнении SQL-запроса Сделал вот такой запрос Код:           AG1 := StrToInt(FormFind.Age.Text);
          ADOQuery1.Close;
          ADOQuery1.SQL.Clear;
          ADOQuery1.SQL.Add('SELECT Pacient.*, Pacient.SName & '' '' & Pacient.FName & '' '' & Pacient.TName AS FIO, Pacient.IDPc & ''_'' & Anketa.IDPc AS IDPc, Anketa.*');
          ADOQuery1.SQL.Add('FROM Pacient');
          ADOQuery1.SQL.Add('INNER JOIN Anketa ON Pacient.IDPc = Anketa.IDPc');
          ADOQuery1.SQL.Add('WHERE Pacient.AGE = :Ag');
          ADOQuery1.Parameters.ParamByName('Ag').Value := AG1;
          ADOQuery1.Open;
          DateSource1.DataSet := ADOQuery1;Загружает все поля из таблиц Pacient и Anketa с объединением трех полей в одно новое FIO и слиянием двух полей Pacient.IDPc и Anketa.IDPc в одно поле IDPc с условие по Pacient.AGE. Во время выполнение последней строчки в вызывает Vcl.Controls Код: procedure TWinControl.MainWndProc(var Message: TMessage);
begin
  try
    try
      WindowProc(Message);
    finally
      FreeDeviceContexts;
      FreeMemoryContexts;
    end;
  except
    Application.HandleException(Self);
  end;
end;В строке Application.HandleException(Self) выходит ошибка "Несовпадение типов". Сделать маленький проект новый с тем-же точно запросом и с теми-же таблицами ни какой ошибки нет. Значить ошибка где-то в проекте а где не могу понять. Помогите люди добрые! | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Если правильно помню, то ADO очень не любит создавать параметры динамически. Попробуй просто в сам запрос добавить значение AG1 вместо того, что бы использовать параметр. | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Цитата: 
 | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   А у тебя случаем в гриде поля не созданы? Очень похоже, что ошибка несовпадения типов возникает в момент, когда после присвоения DataSource, связанный с ним грид пытается обновиться и падает на несовпадении типов. |