Мне надо отловить ошибку SQL-Server`а, которая выводится из ASP. Точней мне надо отличить:ошибки нет, ошибка синтаксиса, ошибка конвертирования строки в число, ошибка доступа(по-народному permisson denied). Чтение с сокета происходит естественно последовательно, его не поseekишь как файл. Для этого мне нужно найти слово в ответе сервера, как это сделать. У меня есть несколько вариантов. Первая идея, это завести фиксированный буфер, сначала считать туда, и там искать, потом снова читать в буфер, а потом читать. Но только если слово окажется на границе, то это не прокатит. Можно также считывать не в начало буфера, а в начало, перед очищением буфера копировать его конец.
Например, надо найти слово microsoft
Буффер, считал в первый раз:
abc fgh jkl tyu iop fgh jkl micro
Буффер, считал во второй раз:
microsoft avb njk ghju iop gjlk f
Ещё есть мысля выделить буфер определённого размера, и по заполнению его, выделить буфер большего размера, скопировать старый буфер в новый, и дописывать в новый, потом снова...
Вот, так. Такой изврат. Вот я и спрашиваю, может есть способы получше, может у кого есть хорошая идея по этому поводу?
Вот например, что я хочу пропарсить, примеры ошибок:
1)
Некий HTML
[Microsoft][ODBC SQL Server Driver][SQL Server]SELECT permission denied on object 'syscomments', database 'hell', owner 'dbo'.
Некий HTML
2)
Некий HTML
Microsoft OLE DB Provider for SQL Server error '80040e14'
Line 1: Incorrect syntax near ','.
/ru/analytics/full-code.asp, line 32
Некий HTML
3)Некий HTML
Microsoft OLE DB Provider for SQL Server error '80040e07'
Error converting data type varchar to int.
/music/bodyarchiv.asp, line 750
Некий HTML.
4) Некий HTML.
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'submenu' to a column of data type int.
/tvline/body.asp, line 17
Некий HTML.
Ситуация осложняется тем, что ответы разные всё время, как видите. Но это уже проблемма #2. Номер один, это хотя бы найти слово нужное в ответе сервера.
Программить думал на gcc.
Например, надо найти слово microsoft
Буффер, считал в первый раз:
abc fgh jkl tyu iop fgh jkl micro
Буффер, считал во второй раз:
microsoft avb njk ghju iop gjlk f
Ещё есть мысля выделить буфер определённого размера, и по заполнению его, выделить буфер большего размера, скопировать старый буфер в новый, и дописывать в новый, потом снова...
Вот, так. Такой изврат. Вот я и спрашиваю, может есть способы получше, может у кого есть хорошая идея по этому поводу?
Вот например, что я хочу пропарсить, примеры ошибок:
1)
Некий HTML
[Microsoft][ODBC SQL Server Driver][SQL Server]SELECT permission denied on object 'syscomments', database 'hell', owner 'dbo'.
Некий HTML
2)
Некий HTML
Microsoft OLE DB Provider for SQL Server error '80040e14'
Line 1: Incorrect syntax near ','.
/ru/analytics/full-code.asp, line 32
Некий HTML
3)Некий HTML
Microsoft OLE DB Provider for SQL Server error '80040e07'
Error converting data type varchar to int.
/music/bodyarchiv.asp, line 750
Некий HTML.
4) Некий HTML.
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'submenu' to a column of data type int.
/tvline/body.asp, line 17
Некий HTML.
Ситуация осложняется тем, что ответы разные всё время, как видите. Но это уже проблемма #2. Номер один, это хотя бы найти слово нужное в ответе сервера.
Программить думал на gcc.