|
1C+ADO+SQL
|
|||
---|---|---|---|
#18+
При выполнении(нижеприлагающегося)участка кода,когда значение счетчика достигает величины,превышающей 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; ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2006, 01:41 |
|
1C+ADO+SQL
|
|||
---|---|---|---|
#18+
поменяйтесь системами с Михайловым. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2006, 02:28 |
|
1C+ADO+SQL
|
|||
---|---|---|---|
#18+
и вообще разберитесь с кавычками в своих текстах ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2006, 02:30 |
|
1C+ADO+SQL
|
|||
---|---|---|---|
#18+
avsuvorovПри выполнении(нижеприлагающегося)участка кода,В чем моя ошибка? Фрагмент(в остальном уверен) кода: // ТАК НЕ РАБОТАЕТ(У МЕНЯ)!!! for iCounter=654832 to 654833 do strSQLQuery=" |insert into Table2(eid,fname,lname) |values("+iCounter+",'FirstName','LastName')"; может, посмотреть, как происходит преобразование типов? в eid вообще что должно попадать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2006, 13:06 |
|
1C+ADO+SQL
|
|||
---|---|---|---|
#18+
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... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2006, 13:41 |
|
1C+ADO+SQL
|
|||
---|---|---|---|
#18+
PA При преобразовании числа в строку 1цэ (8.0) вставляет в строковое представление разделитель разрядов. Надо так: strSQLQuery=" |insert into Table2(eid,fname,lname) |values("+ Формат(24365765, "ЧГ=") +",'FirstName','LastName')"; А ещё лучше воспользоваться коллекцией Parameters объекта ADODB.Command... первый курс, короче... наглядный пример полезности классического образования. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2006, 14:31 |
|
1C+ADO+SQL
|
|||
---|---|---|---|
#18+
авторА ещё лучше воспользоваться коллекцией Parameters объекта ADODB.Command А вот с этим пытался разобраться. Именованные параметры работали только на хранимых процедурах, а на простых запросах не работали. Что неправильно делал? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2006, 19:16 |
|
|
start [/forum/topic.php?fid=28&msg=33819306&tid=1525601]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 237ms |
0 / 0 |