powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / 1C+ADO+SQL
7 сообщений из 7, страница 1 из 1
1C+ADO+SQL
    #33818073
avsuvorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При выполнении(нижеприлагающегося)участка кода,когда значение счетчика достигает величины,превышающей 999,генерируется ошибка:
{Форма.Форма(27)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Line 3: Incorrect syntax near ' '.
RecordSet=Command.Execute();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Line 3: Incorrect syntax near ' '.

При величине счетчика <1000 все проходит нормально.Причем и.с. генерируется и при попытке вызова в цикле встроенной процедуры для вставки данных.
В чем моя ошибка?

Фрагмент(в остальном уверен) кода:

// ТАК НЕ РАБОТАЕТ(У МЕНЯ)!!!
for iCounter=654832 to 654833 do
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values("+iCounter+",'FirstName','LastName')";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
enddo;

// ТАК ТОЖЕ НЕ РАБОТАЕТ(У МЕНЯ)!!!
for iCounter=1 to 1000 do
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values("+iCounter+",'FirstName','LastName')";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
enddo;

//А ВОТ ТАК РАБОТАЕТ(У МЕНЯ)!!!
for iCounter=1 to 999 do
strSQLQuery="sp_insert_into_table2 "+iCounter+",'FirstName','LastName'";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
enddo;

// И ТАК РАБОТАЕТ(У МЕНЯ)!!!
for iCounter=1 to 999 do
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values("+iCounter+",'FirstName','LastName')";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
enddo;

// ТАК ОПЯТЬ НЕ РАБОТАЕТ(У МЕНЯ)!!!
//for iCounter=1 to 999 do
iCounter=6534398;
strSQLQuery="sp_insert_into_table2 "+iCounter+",'FirstName','LastName'";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
//enddo;

// И ТАК ОПЯТЬ НЕ РАБОТАЕТ(У МЕНЯ)!!!
//for iCounter=1 to 1000 do
iCounter=24365765;
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values("+iCounter+",'FirstName','LastName')";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
//enddo;

// А ВОТ ТАК РАБОТАЕТ(У МЕНЯ)!!!
//for iCounter=1 to 1000 do
//iCounter=24365765;
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values(24365765,'FirstName','LastName')";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
//enddo;

// А ВОТ ТАК ОПЯТЬ НЕ РАБОТАЕТ(У МЕНЯ)!!! А У Михайлова(1С Предприятие Системное программирование) РАБОТАЕТ!
//for iCounter=1 to 1000 do
//iCounter=24365765;
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values("+24365765+",'FirstName','LastName')";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
//enddo;

// И ТАК ОПЯТЬ НЕ РАБОТАЕТ(У МЕНЯ)!!!
//for iCounter=1 to 1000 do
//iCounter=24365765;
strSQLQuery="sp_insert_into_table2 "+24365765+",'FirstName','LastName'";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
//enddo;

// А ТАК ОПЯТЬ РАБОТАЕТ(У МЕНЯ)!!!
//for iCounter=1 to 1000 do
//iCounter=24365765;
strSQLQuery="sp_insert_into_table2 24365765,'FirstName','LastName'";
Command.CommandText=strSQLQuery;
Command.CommandType=1;
RecordSet=Command.Execute();
//enddo;
...
Рейтинг: 0 / 0
1C+ADO+SQL
    #33818094
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поменяйтесь системами с Михайловым.
...
Рейтинг: 0 / 0
1C+ADO+SQL
    #33818095
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вообще разберитесь с кавычками в своих текстах
...
Рейтинг: 0 / 0
1C+ADO+SQL
    #33819057
wendy spancer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avsuvorovПри выполнении(нижеприлагающегося)участка кода,В чем моя ошибка?

Фрагмент(в остальном уверен) кода:

// ТАК НЕ РАБОТАЕТ(У МЕНЯ)!!!
for iCounter=654832 to 654833 do
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values("+iCounter+",'FirstName','LastName')";


может, посмотреть, как происходит преобразование типов? в eid вообще что должно попадать?
...
Рейтинг: 0 / 0
1C+ADO+SQL
    #33819156
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avsuvorovПри выполнении(нижеприлагающегося)участка кода,когда значение счетчика достигает величины,превышающей 999,генерируется ошибка:
{Форма.Форма(27)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Line 3: Incorrect syntax near ' '.
RecordSet=Command.Execute();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Line 3: Incorrect syntax near ' '.

При величине счетчика <1000 все проходит нормально.Причем и.с. генерируется и при попытке вызова в цикле встроенной процедуры для вставки данных.
В чем моя ошибка?

При преобразовании числа в строку 1цэ (8.0) вставляет в строковое представление разделитель разрядов.
Надо так:
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values("+ Формат(24365765, "ЧГ=") +",'FirstName','LastName')";

А ещё лучше воспользоваться коллекцией Parameters объекта ADODB.Command...
...
Рейтинг: 0 / 0
1C+ADO+SQL
    #33819306
wendy spancer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PA
При преобразовании числа в строку 1цэ (8.0) вставляет в строковое представление разделитель разрядов.
Надо так:
strSQLQuery="
|insert into Table2(eid,fname,lname)
|values("+ Формат(24365765, "ЧГ=") +",'FirstName','LastName')";

А ещё лучше воспользоваться коллекцией Parameters объекта ADODB.Command...

первый курс, короче... наглядный пример полезности классического образования.
...
Рейтинг: 0 / 0
1C+ADO+SQL
    #33825896
oleg_km
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторА ещё лучше воспользоваться коллекцией Parameters объекта ADODB.Command

А вот с этим пытался разобраться. Именованные параметры работали только на хранимых процедурах, а на простых запросах не работали. Что неправильно делал?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1C+ADO+SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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