|
|
|
AError + несколько ошибок. (может тут есть мозк)
|
|||
|---|---|---|---|
|
#18+
Дааа вообще крышняк сносит... Никогда не сталкивался с тем что сервер может вернуть не 1 ошибку на 1 запрос. Вот столкнулся. Оказывается у фокса от этого чтото клинит. Имеем массив ошибок (у меня их 11 штук) Делаю их сохранение для истории на сервере: Вот такой вот цикл простенький для этого накалякал: m.iResult=SQLEXEC(thisform.h_conn,"BULK INSERT TmpTovar FROM '"+m.cFile+"' WITH (DATAFILETYPE = 'char',CODEPAGE = 'ACP',FIELDTERMINATOR = ';',FIRSTROW = 2,MAXERRORS = 9999999);Select Count(*) as _Count From TmpTovar",'q_rezult') IF m.iResult = -1 =AERROR(_aErr) m.iC = ALEN(_aErr,1) m.cErrLog = '' FOR m.iX = 1 TO m.iC m.cErrLog = m.cErrLog + _aErr[m.ix,2] + CHR(13) ENDFOR Аднака запись _aErr[m.ix,2] дает одно и то же значение ПЕРВОЙ строки _aErr[1,2] Смотрю в дебаггере - все норма. Массив открывается (при нажатии на +) и в нем разные значения... А записи _aErr[1,2], _aErr[2,2], _aErr[3,2] возвращают одно и то же! (имею ввиду записи переменных в дебаггере) Короче мистика блин. Или может я чего не то делаю а? Ща попробую этот массив через Insert From Array пройти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 10:48 |
|
||
|
AError + несколько ошибок. (может тут есть мозк)
|
|||
|---|---|---|---|
|
#18+
Есть у меня подозрение, что текущая БД сервера работает под установкой SET NOCOUNT OFF, поэтому возвращается не 1 результирующий набор а как минимум 2. 1-отчет о выполнении BULK INSERT, 2 - набор запроса. 1-й никак не получишь, только из xp как строка в качестве параметра. Потом, m.iResult = -1 - ошибка уровня соединения. Если попал сюда, значит, возможно, косяк у тебя возможно не в выполнении команд T-SQL. thisform.h_conn = This.nHandleSession = SQLSTRINGCONNECT(...) или SQLCONNECT(...) проверял ? И самое главное , с чего ты взял что у тебя массив _aErr будет нестандартный и будет содержать информацию о более чем 1 ошибке ? :) Массив создан, ошибка записана. Ты пробегаешь по 1 и тому же массиву m.iC раз и берешь 1 и тоже значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:06 |
|
||
|
AError + несколько ошибок. (может тут есть мозк)
|
|||
|---|---|---|---|
|
#18+
Гы. Инннтересный Вы человек. А на код посмотреть несудьба? Где там одно и то же значение берется? :-)))) Естественно если результат запроса = -1 то была ошибка. Блин их мне и нужно залогировать. Их не 1 а 11. Они содержат ошибки строк при работе Bulk Insert. Предложения есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:12 |
|
||
|
AError + несколько ошибок. (может тут есть мозк)
|
|||
|---|---|---|---|
|
#18+
Андрей, собиретесь в конце концов. Уже не смешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:26 |
|
||
|
AError + несколько ошибок. (может тут есть мозк)
|
|||
|---|---|---|---|
|
#18+
Пример для проб выложен здесь. Так же как и более детальное описание. http://forum.foxclub.ru/read.php?29,210271 ЗЫ Куда собраться то нужно? :-))) Поймите правильно. Я в Вашем сообщении не увидел направления как решить задачу. Если что не обижайтесь я не хотел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:31 |
|
||
|
AError + несколько ошибок. (может тут есть мозк)
|
|||
|---|---|---|---|
|
#18+
Андрей! После =AERROR(_aErr) у вас в _aErr кол-во строк столько, сколько ошибок произошло в пакете - тут вы правы, но при этом выбирайте не _aErr[2], а _aErr[3] - там будет подробный текст ошибки. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 14:01 |
|
||
|
AError + несколько ошибок. (может тут есть мозк)
|
|||
|---|---|---|---|
|
#18+
Да, спасибо, но уже разобрались. А вообще в точку. Просто всегда брал 2 элемент массива а не 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 15:02 |
|
||
|
AError + несколько ошибок. (может тут есть мозк)
|
|||
|---|---|---|---|
|
#18+
Я тоже :) Пока не напоролся на ошибку 266 (Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing) . Ошибка не страшная и не прерывает пакет, а в клиент пролезает. А если потом возникает другая, "настоящая" ошибка, во втором элементе массива показывалась все ровно 266. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 15:12 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33799986&tid=1591372]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 398ms |

| 0 / 0 |
