Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 ошибка data type mismatch  [new]
TsYekaterina
Member

Откуда:
Сообщений: 108
бодрый день! программа работает с dbf-таблицами. в таблице есть поле dizm типа numeric.
при добавлении данных ошибка: data type mismatch. я так понимаю,
что проблема при добавлении этого поля. при чем это поле в таблице
пустое с форматом " / / ".
  with FormNorma.TechProcQuery do begin
  sql.Clear;
  SQL.Add('insert into stp (tpr, ntp, wtp, obr, Pok, podr, dizm,  priz) ');
  SQL.Add('values (:tpr, :ntp, :wtp, :obr, :Pok, :podr, :dizm, :priz)');
  Parameters.ParamByName('tpr').Value:=Trim(NumMaskEdit.Text);
  Parameters.ParamByName('ntp').Value:=Trim(NaimMemo.Text);
  Parameters.ParamByName('wtp').Value:=Trim(VidTextEdit.Text);
  Parameters.ParamByName('obr').Value:= Trim(OborudTextEdit.Text);
  Parameters.ParamByName('pok').Value:=' ';
  Parameters.ParamByName('podr').Value:=Trim(UchastokMemo.Text);
  Parameters.ParamByName('dizm').Value:=[b]Trim(DateToStr(Dizm));[/b]   ?????????????
  Parameters.ParamByName('priz').Value:=' ';
  ExecSQL;
  end;
  FormNorma.TechProcQuery.Close;
  FormNorma.TechProcQuery.SQL.Text:='select tpr, ntp, wtp, obr, podr from stp.DBF ';
  FormNorma.TechProcQuery.Open;
  TechprocessFildName;
10 сен 18, 13:09    [21669777]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45696

Не надо приводить дату к строке.

Posted via ActualForum NNTP Server 1.5

10 сен 18, 13:17    [21669780]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
TsYekaterina
Member

Откуда:
Сообщений: 108
Dimitry Sibiryakov,

Спасибо!
10 сен 18, 13:29    [21669795]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
Gator
Member

Откуда: Москва
Сообщений: 13866
Dimitry Sibiryakov
Не надо приводить дату к строке.

TsYekaterina
Dimitry Sibiryakov,

Спасибо!

В общем случае зависит от формата даты (ну там разделители, очепятки и др. лоханутости 01/02/03)
11 сен 18, 01:07    [21670398]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45696

Gator
В общем случае зависит от формата даты

Именно поэтому. Компоненты доступа сами разберутся куда надо преобразовывать TDateTime.

Posted via ActualForum NNTP Server 1.5

11 сен 18, 12:34    [21670802]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12242
Вместо .Value лучше использовать преобразование .asString, .asInteger, .asDateTime и т.д.
11 сен 18, 12:39    [21670808]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
Василий 2
Member

Откуда:
Сообщений: 192
X11
Вместо .Value лучше использовать преобразование .asString, .asInteger, .asDateTime и т.д.

Имею обратное мнение. Обоснуй?
12 сен 18, 09:59    [21671782]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12242
Исходя из типа, формируется запрос: то ли это будет число, то ли текст, то ли дата.
Вот, например, дата может передаваться правильно, т.е. как число или неправильно, т.е. в виде текста.
12 сен 18, 12:29    [21671976]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
TsYekaterina
Member

Откуда:
Сообщений: 108
можно вопрос в продолжение темы? создаю запрос обновления данных в бд
  RedactorMatForm.DataEdit.text:=s;
  s:=FormatDateTime('{^yyyy/dd/mm}', Date);
  with MatForm.MatQuery do begin
  close;
  SQL.clear;
  SQL.Add('Update unr set obm='+RedactorMatForm.OBMTextEdit.Text+', ');
  SQL.Add('kets='+RedactorMatForm.KodEdUdEdit.Text+', ');
  SQL.Add('ets='+QuotedStr(RedactorMatForm.NaimUdEdit.Text)+', ');
  SQL.Add('unr1='+RedactorMatForm.UdNormaEdit.Text+', ');
  SQL.Add('di='+s+', ');
  SQL.Add('dw='+s+', ');
  SQL.Add('izw='+QuotedStr(RedactorMatForm.IzvechMemo.Text));
  SQL.Add(' where obm='+RedactorMatForm.OBMTextEdit.Text);
  try ExecSQL;
    except
 //
  end;
  end;

но обновлений не происходит. с чем это может быть связано?
12 сен 18, 13:57    [21672133]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45696

TsYekaterina
с чем это может быть связано?

С тем, что какой-то идиот подавил вывод сообщений об ошибках?.. Или с тем, что запрос не
использует параметры?.. Или с тем, что литералы неправильно квотируются?.. Выбирай на вкус.

Posted via ActualForum NNTP Server 1.5

12 сен 18, 14:09    [21672160]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29045

12.09.2018 14:09, Dimitry Sibiryakov пишет:
> С тем, что какой-то идиот подавил вывод сообщений об ошибках?..

почему сразу идиот?
у неё же там
try
  ExecSQL;
except
 //
end;

так что не какой-то, и не идиот.
она же женского роду.
если не прикидывается, конечно.

Posted via ActualForum NNTP Server 1.5

12 сен 18, 15:19    [21672302]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6035
TsYekaterina
но обновлений не происходит. с чем это может быть связано?


Т.е. просто все "молча" уходит на сервер и никаких сообщений об ошибке нет?
P.S. Да, формирование запроса доставляет... Не нужно так делать.
12 сен 18, 15:39    [21672346]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
TsYekaterina
Member

Откуда:
Сообщений: 108
Dimitry Sibiryakov,

грубо, но спасибо! через параметры получилось.
12 сен 18, 15:59    [21672383]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12242
try 
  ExecSQL;
except 
 
//пустота

end;


за такое обычно бьют по морде
12 сен 18, 16:08    [21672405]     Ответить | Цитировать Сообщить модератору
 Re: ошибка data type mismatch  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29045

12.09.2018 16:08, X11 пишет:
> за такое обычно бьют по морде

фи, поручик!
бап по морде не бьют!

только по лицу...

Posted via ActualForum NNTP Server 1.5

12 сен 18, 16:22    [21672447]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить