parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

посмотрел

Александр Петросян (PAF) 22.07.2005 14:56

это происходит потому, что parser не достаёт заголовки ответа (в help написано, что не сможет, потому и такой код; реально сможет или нет никогда не проверял, поскольку подобного нам не было нужно).
// mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\adosql.chm::/adoprg02_4g33.htm
// Server cursors are created only for statements that begin with: 
// SELECT
// EXEC[ute] procedure_name
// call procedure_name
// mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\odbcsql.chm::/od_6_035_5dnp.htm
// The ODBC CALL escape sequence for calling a procedure is:
// {[?=]call procedure_name[([parameter][,[parameter]]...)]}
if(strncasecmp(statement, "select", 6)==0
   || strncasecmp(statement, "EXEC", 4)==0
   || strncasecmp(statement, "call", 4)==0
   || strncasecmp(statement, "{", 1)==0) {
возможно, сумеете перефразировать запрос, чтобы он начался с нужных ключевых слов?

если не сумеете, можно попробовать обойти то, что написано в ms help, для чего в файле parser3odbc.dll можно найти слово "EXEC" (первое вхождение) и заменить на слово "decl" (начало вашего declare) в любом hex редакторе.