|
Update SQL
|
|||
---|---|---|---|
#18+
Есть такой код: =ADIR(mas,_p+strt(_myapp, '.','*.')) sql_server= Sqlstringconnect(...) && создание самого соединения с сервером SQLEXEC(sql_server,"Update AppHouse set [textApp]='' where [App]=?_myapp") FOR i=1 TO ALEN(mas,1) _v=GETWORDNUM(mas(i,1),2,'_') _v=VAL(LEFT(_v, RAT('.',_v)-1)) _d=CTOT(TRANSFORM(DTOS(mas(i,3)),'@R 9999-99-99')+'T'+mas(i,4)) rc=SQLEXEC(sql_server,'Select COUNT(*) as kol from AppHouse where App=?_myapp and vers = ?_v', '_xx1') IF _xx1.kol = 0 rc=SQLEXEC(sql_server,'Insert into AppHouse (App, vers, EdishionTime, Action) values (?_myapp, ?_v, ?_d, 1)') ELSE rc=SQLEXEC(sql_server,'Update AppHouse set EdishionTime=?_d where App=?_myapp and vers=?_v') Endi CREATE CURSOR _tt (txt W) INSERT INTO _tt (txt) VALUES (FILETOSTR(_p+mas(i,1))) rc=SQLEXEC(sql_server,'Update AppHouse set [TextApp]=?_tt.txt where [App]=?_myapp and [vers]=?_v') USE IN _tt USE IN _xx1 endf rc=SQLDISCONNECT(sql_server) На самом деле в настоящее время работает только ветка Update. При этом заполнение поля TextApp происходит через запись: 1-заполнена, 2-я нет, 3-я заполнена, 4-я нет, ... Всего 9 записей. Со стороны fox-a все работает нормально, Sql на каждой команде возвращает 1. А обновление не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 09:23 |
|
Update SQL
|
|||
---|---|---|---|
#18+
glamisСо стороны fox-a все работает нормально, Sql на каждой команде возвращает 1. А обновление не работает. Значит нет записей подпадающих под условие указанное во WHERE Вставь перед UPDATE проверку и отладчиком смотри Код: sql 1. 2. 3. 4.
В синтаксисе UPDATE есть опция OUTPUT , вроде как возвращает измененные записи. Можешь ее попробовать. Я ни разу не пользовался. PS Названия переменных не стоит начинать с подчеркивания. Может совпасть со спец.переменными фокса (_tally, _pageno и т.п.). Почитай про венгерскую нотацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 09:46 |
|
Update SQL
|
|||
---|---|---|---|
#18+
Dima T, В 8-й строке как раз проверка есть запись чи нет. Еси нет, добавляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 09:56 |
|
Update SQL
|
|||
---|---|---|---|
#18+
glamis CREATE CURSOR _tt (txt W) INSERT INTO _tt (txt) VALUES (FILETOSTR(_p+mas(i,1))) попробуй это заменить на lcTextApp = FILETOSTR(_p+mas(i,1)) и так соответственно Код: sql 1.
может с этим как-то связано ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 10:13 |
|
Update SQL
|
|||
---|---|---|---|
#18+
glamisFILETOSTR(_p+mas(i,1)) А файл не пустой случайно? Инициализировать надо гарантированно несуществующим значением Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 10:25 |
|
Update SQL
|
|||
---|---|---|---|
#18+
Dima T, Не помогло. Наверно надо добавить - AppTxt - поле Image, длина вложений ~ 6М. Пробовал - ч/з строку, мемо, cast(). Для всех этих вариантов заменяет на значение 0х Для Blob - кое-где заменяет на содержимое файла (См. картинку). Запись производилась в порядке возрастания версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 10:40 |
|
Update SQL
|
|||
---|---|---|---|
#18+
Если я правильно понял, то вопрос звучит так. По какой причине поле [TextApp] остается пустым, если запись, удовлетворяющая условию WHERE - существует? Коанда выглядит так? Код: sql 1.
Ну, для начала, надо проверить тот факт, что содержимое _tt.txt - не пустое ДО попытки вставки. Может, просто нет ничего в файле? Кстати, после символа вопросительного знака можно написать функцию FoxPro, а не только параметр. Т.е. можно вот так Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 12:00 |
|
Update SQL
|
|||
---|---|---|---|
#18+
Там картинки сохраняются. Может так попробовать Код: sql 1.
Тут еще про картинки было ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 12:11 |
|
Update SQL
|
|||
---|---|---|---|
#18+
ВладимирМ, _tt.txt не пустое. Вывожу статистику после Insert into _tt ... в виде ?vers, len(_tt.txt) длины от 5,1М до 7М. Это я проверил первым делом. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 12:41 |
|
Update SQL
|
|||
---|---|---|---|
#18+
Dima T, Да, createbinary помогло. Dima TИнициализировать надо гарантированно несуществующим значением Похоже ваще не отрабатывало на этих строках - 3-я строка очищает это поле и после замен оно не меняется. Если инициируешь пробелом - остается 0х, если NULL он и остается. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 12:48 |
|
|
start [/forum/topic.php?fid=41&msg=38176943&tid=1583127]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 153ms |
0 / 0 |