Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2008, 18:52   #1
Максим_Леонидович
Пользователь
 
Регистрация: 22.07.2008
Сообщений: 49
Печаль помогите найти ошибку

Здравствуйте. Ни как не пойму, в чем ошибка?

Код:
procedure TForm6.BitBtn1Click(Sender: TObject);
var
sqlstr: string;

begin
sqlstr:= 'UPDATE pasport_data SET Famil_p = '+char(39)+DBEd_Fam.Text+char(39)+' WHERE ID_pacient = '+char(39)+Label_ID.Caption+
      char(39)+';';

   ShowMessage(sqlstr);
      if application.MessageBox(PChar('Сохранить сделанные изменения?'),
      'Редактирование паспортных данных:',MB_OKCANCEL)=idOK then
        begin
      with DatMod.ADOQuery2 do
          begin
      DatMod.ADOQ_Mod.SQL.Clear;
      DatMod.ADOQ_Mod.SQL.ADD(sqlstr);
      DatMod.ADOQ_Mod.ExecSQL;
          end;

          application.MessageBox(PChar('Запись сохранена'),
          'Сообщение', MB_OK);
          Form6.Close;
          DatMod.ADOQuery1.Active:=false;
          DatMod.ADOQuery1.Active:=true;
        end;
end;
не обновляет данные, а выдает ошибку:

Project1.exe raised exception class EOIe Exception with message 'Несоответствие типов данных в выражении условия отбора'

подскажите в чем дело?
Максим_Леонидович вне форума Ответить с цитированием
Старый 20.08.2008, 20:43   #2
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

ID_pacient - какой у вас тип данных? Наверняка не строковый
и Label_ID.Caption - какой? Отсюда несоответствие типов данных.
edgy вне форума Ответить с цитированием
Старый 20.08.2008, 22:56   #3
Максим_Леонидович
Пользователь
 
Регистрация: 22.07.2008
Сообщений: 49
По умолчанию

в БД ID тип integer. а строка запроса для Query - string. Как же я integer в string засуну?
Пробовал вставлять ID через StrToInt не получается.

извиняюсь за глупые вопросы, первый раз делаю.
Максим_Леонидович вне форума Ответить с цитированием
Старый 20.08.2008, 23:05   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

имхо, надо просто убрать лишнии кавычки:

Код:
sqlstr:= 'UPDATE pasport_data SET Famil_p = '+char(39)+DBEd_Fam.Text+char(39)+
  ' WHERE ID_pacient = '+Label_ID.Caption+';';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.08.2008, 23:23   #5
Максим_Леонидович
Пользователь
 
Регистрация: 22.07.2008
Сообщений: 49
По умолчанию

Огромная благодарность!!!
Этож надо, два дня из-за каких то жалких кавычек просидел на одном месте!
Максим_Леонидович вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку ( с++ ) JOFRIF Помощь студентам 10 23.05.2008 14:34
Помогите найти ошибку KnDmPetr Паскаль, Turbo Pascal, PascalABC.NET 1 11.04.2008 15:48
Помогите найти ошибку NeiL Общие вопросы Delphi 7 04.03.2008 07:14
Помогите найти ошибку Рената Паскаль, Turbo Pascal, PascalABC.NET 2 05.01.2008 04:29
help!!! Помогите найти ошибку!!! linker13 Общие вопросы Delphi 2 07.07.2007 23:15