powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка синтаксиса. ASP+SQL
25 сообщений из 61, страница 1 из 3
Ошибка синтаксиса. ASP+SQL
    #32049597
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выдает код ошибки
Error Type:
(0x80040E14)
Вроде как ошибка синтаксеса...но приэтом действия все проходят.

<%
dim connect, rs, cmd, rss
dim sid
sid=Request("ID")(1)


set connect=Server.CreateObject("ADODB.Connection")
connect.ConnectionTimeout=15
connect.CommandTimeout=10
connect.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=Test;Data Source=SQL\TEST;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"


set cmd=Server.CreateObject("ADODB.Command")
cmd.CommandType=adCmdStoredProc
cmd.CommandText="deletecustomers"
cmd.ActiveConnection=connect

cmd.Parameters.Append cmd.CreateParameter("id",adVarWChar,adParamInput,100,sid)

set rs=cmd.Execute
%>

<p class="zaglavie">Успешно</p>
<% rs.close
connect.close %>

Ошибка на строчке set rs=cmd.Execute. Причем если это идет выборка из страниц то нет ее. Если идет изменение таблиц она появляется
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049607
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А rs вообще нужен? Используется он где-нибудь? Если просто сказать cmd.Execute ошибка такая-же?
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049612
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да все тоже самое
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049618
oda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oda
Гость
set rs=cmd.Execute - это при select
rs - "помещается" результат

cmd.Execute - это при Inset update delete

пробуй
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049620
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробывал все тожее самое. Таже ошибка в той же строчке
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049622
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если процедура не возвращает рекордсета, то rs.close будет давать ошибку.
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049632
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непомогло. То есть получается что здесь не возвращается recordset. Может имеет смысл переписать с его использованием. Если так то помогите.
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049637
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
:::
set cmd=Server.CreateObject( "ADODB.Command" ) 
cmd.CommandType=adCmdText
cmd.CommandText= "deletecustomers '" & sid &"'" 
cmd.ActiveConnection=connect 
set rs=cmd.Execute 
%> 
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049652
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят все то же самое
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049654
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда так, кондово:
:::
set cmd=Server.CreateObject("ADODB.Command")
cmd.CommandType=adCmdText
cmd.ActiveConnection=connect
set rs=cmd.Execute "deletecustomers '" & sid &"'"
%>
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049658
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неа не проходит....., пишет все тоже самое. Довольно странно

Тока у меня же процедура исполняется а не текст...
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049667
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выполняется ХП, то все в порядке. Возможно ошибка связана с установками OLE DB провайдера (типа Security).

ЗЫ ИМХО конечно, но объект ADODB.Command - для тех, кто любит трудности. И все эти примочки, типа adCmdStoredProc etc способны только запутать больше, чем помочь, т.к. ХП прекрасно интерпретируются, как обычные команды SQL, и при этом не нужно регистрировать их параметры с помощью хитровыстраданной :0) процедуры (метода).

Все, что необходимо для работы с SQL сервером из приложения можно достичь используя только ADODB.Connection & ADODB.Recordset.
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049679
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть ты предлагаешь вставлять в ASP SQL строчек в которых около 200 или более строчек будет?
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049685
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каких строчек и где?
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049692
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. А кроме кода ошибки есть сообщение о ней ?

2. Весь ли это ASP код или может быть вы опустили некоторые строки как несущественные ?

3. Текст процедуры тоже хотелось бы увидеть (если там SET NOCOUNT ON, например)
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049704
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет такой строчки счас там нет но я и пробывал ее вставить. Конешно это почти не существенно, так как процедура сама выполняется, но ведь на страницу вываливается ошибка

вот процедура

CREATE procedure dbo.deletecustomers
@id nvarchar(50)
as

delete

from customers
where @id=NameID

простенькая. А если нужно вставлять эту строчку то в какое место7 Я ставил между as и delete
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049734
av_ev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместо

cmd.Parameters.Append cmd.CreateParameter("id",adVarWChar,adParamInput,100,sid)

я бы написал

cmd("@id")=sid
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049739
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно конечно вообще забить на Command и просто написать

connect.Execute "deletecustomers '" & sid &"'"

Но так ты собственноручно сделаешь дырку в защите. Если безопасность несущественна, то сделай так.
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049747
idef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я конечно не великий знаток АДО, но
Что должен вернуть вызов cmd.Execute
Вы думаете рекордсет?
Но вы пользуетесь ADODB.Command,
при этом вызываете процедуру.
Если бы вы использовали в cmd.CommandText
select - тогда понятно, но это-же вызов процедуры!!!
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049754
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 VVG_

Что же это за нарушение правил безопасности, указывать команду текстом в ASP-скрипте? Кто-то прямо на сервере перехватит?
Хотелось бы подробностей.
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049756
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 idef

Похоже Вы правы. Set rs = cmd.Execute имеет смысл только в том случае, если ХП (или команда) возвращают набор данных. Если же нет результатов, то просто cmd.Execute

Кстати и oda об этом говорил(а).
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049758
Klopiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят! Давай те не отвлекаться.....ут проблема такая. Может она из-за того что у меня SQL 2000 не пропачен на SP2? Или из-за того что ADO разные версии или тоже не пропачены?
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049763
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<%
dim connect, rs, cmd, rss
dim sid
sid=Request("ID")(1)


set connect=Server.CreateObject("ADODB.Connection")
connect.ConnectionTimeout=15
connect.CommandTimeout=10
connect.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=Test;Data Source=SQL\TEST;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"


set cmd=Server.CreateObject("ADODB.Command")
cmd.CommandType=adCmdStoredProc
cmd.CommandText="deletecustomers"
cmd.ActiveConnection=connect

cmd.Parameters.Append cmd.CreateParameter("id",adVarWChar,adParamInput,100,sid)
cmd.Execute

%>

<p class="zaglavie">Успешно</p>
<% rs.close
connect.close %>


MSDN ADO 2.7:
Execute raises an error if the user specifies a value for CommandStream when the CommandType is adCmdStoredProc, adCmdTable, or adCmdTableDirect.

ЗЫ. ("id",adVarWChar,adParamInput,100,sid)
В процедуре - nvarchar(50)
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049767
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри:
Ссылка на MSDN немного не в тему :)
Смысл: такой операция удаления из базы по определению не может возвратить рекордсет...
И
Выдает код ошибки
Error Type:
(0x80040E14)
Скорее всего ошибка создания объекта Vb скриптом
...
Рейтинг: 0 / 0
Ошибка синтаксиса. ASP+SQL
    #32049769
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вопрос:
У тебя удаление записи проходит?
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка синтаксиса. ASP+SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]