#vb6 #foxpro
#vb6 #foxpro
Вопрос:
У меня есть проект vb6, и мне нужно обновить таблицу visual foxpro из набора записей.Моя проблема в том, что при попытке обновить таблицу я получаю сообщение об ошибке: Команда содержит незарегистрированную фразу / ключевые слова.Моя проблема заключается в том, что касается поля даты.Я не знаю, правильно ли я написал последнюю часть кода.Вот мой код:
rs2.Open "update transac set no_ot_1_5 = " amp; rs1.Fields("ovt1") amp; ", no_ot_2_0 = " amp; rs1.Fields("ovt2") amp; ", no_ot_3_0" _
amp; "= " amp; rs1.Fields("ovt3") amp; "where code = '" amp; rs1.Fields("emp_code") amp; "and transac.date = amp; trans.txtend amp;", cn1, adOpenDynamic, adLockPessimistic
Ответ №1:
Попробуйте это:
rs2.Open "update transac set no_ot_1_5 = " amp; rs1.Fields("ovt1") amp; ", no_ot_2_0 = " amp; rs1.Fields("ovt2") amp; ", no_ot_3_0" _
amp; "= " amp; rs1.Fields("ovt3") amp; " where code = '" amp; rs1.Fields("emp_code") amp; "' and transac.date = '" amp; trans.txtend amp;"'", cn1, adOpenDynamic, adLockPessimistic
Похоже, вам не хватало пробела перед ключевым словом WHERE и вы пропустили одинарную кавычку после emp_code. Также похоже, что у вас возникла проблема с датой транзакции.
Ответ №2:
Если решение от G Mastros все еще не завершено, это может быть связано с неправильным типом данных в поле «Дата». возможно, вам придется перейти на
transac.date = CTOD(‘» amp; trans.txtend amp;»‘) «
как если бы вы отправляли текстовую строку, но дата имеет поле типа DATE, вам нужно будет преобразовать ее в функцию, распознаемую VFP… CTOD() — это преобразование символьной строки в Дату.
Комментарии:
1. Большое спасибо, что ваше решение работает! Я пытаюсь уже 2 дня, большое спасибо.