Как корректно выполнить пакетный запрос с помощью ADODB.Command?

Dzenn
Дата: 20.11.2008 10:38:20
Делаю связку Oracle - 1C через ADO. При выполнении пакетного запроса вываливается ошибка (жалуется на первый символ ";" ), хотя если выполнить непосредственно в TOAD, то все работает. Подскажите пожалуйста, где можно копать.


Команды = Новый COMObject("ADODB.Command");
Подключение = Новый COMОбъект("ADODB.Connection");
Подключение.ConnectionString = "Provider=MSDAORA.1;User ID=DWH_LOAD;Data Source=XXX;Password=YYY;Persist Security Info=False";
Подключение.Open();
Команды.ActiveConnection = Подключение;
Команды.CommandTimeOut = 10000;

Команды.CommandText =
"INSERT INTO
| DWH_ADMIN.SPR_ORGANIZATION
|(
| ORGANIZATION_ID,
| ORGANIZATION_NAME,
| ORGANIZATION_TYPE_ID
|)
|VALUES
|(
| 78,
| 'ЗАО Ромашка',
| 4
|)
|;
|INSERT INTO
|DWH_ADMIN.SPR_ORGANIZATION
|(
| ORGANIZATION_ID,
| ORGANIZATION_NAME,
| ORGANIZATION_TYPE_ID
|)
|VALUES
|(
| 96,
| 'ЗАО Одуванчик',
| 4
|)
|;";

Команды.Execute();

Вываливается:
Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for Oracle): ORA-00911: неверный символ
KOT MATPOCKuH
Дата: 20.11.2008 10:43:57
Dzenn


Команды = Новый COMObject("ADODB.Command");
Подключение = Новый COMОбъект("ADODB.Connection");
Подключение.ConnectionString = "Provider=MSDAORA.1;User ID=DWH_LOAD;Data Source=XXX;Password=YYY;Persist Security Info=False";
Подключение.Open();
Команды.ActiveConnection = Подключение;
Команды.CommandTimeOut = 10000;

Команды.CommandText =
"BEGIN INSERT INTO
| DWH_ADMIN.SPR_ORGANIZATION
|(
| ORGANIZATION_ID,
| ORGANIZATION_NAME,
| ORGANIZATION_TYPE_ID
|)
|VALUES
|(
| 78,
| 'ЗАО Ромашка',
| 4
|)
|;
|INSERT INTO
|DWH_ADMIN.SPR_ORGANIZATION
|(
| ORGANIZATION_ID,
| ORGANIZATION_NAME,
| ORGANIZATION_TYPE_ID
|)
|VALUES
|(
| 96,
| 'ЗАО Одуванчик',
| 4
|)
|; END";

Команды.Execute();

KOT MATPOCKuH
Дата: 20.11.2008 10:44:43
Упс

Dzenn


Команды = Новый COMObject("ADODB.Command");
Подключение = Новый COMОбъект("ADODB.Connection");
Подключение.ConnectionString = "Provider=MSDAORA.1;User ID=DWH_LOAD;Data Source=XXX;Password=YYY;Persist Security Info=False";
Подключение.Open();
Команды.ActiveConnection = Подключение;
Команды.CommandTimeOut = 10000;

Команды.CommandText =
"BEGIN INSERT INTO
| DWH_ADMIN.SPR_ORGANIZATION
|(
| ORGANIZATION_ID,
| ORGANIZATION_NAME,
| ORGANIZATION_TYPE_ID
|)
|VALUES
|(
| 78,
| 'ЗАО Ромашка',
| 4
|)
|;
|INSERT INTO
|DWH_ADMIN.SPR_ORGANIZATION
|(
| ORGANIZATION_ID,
| ORGANIZATION_NAME,
| ORGANIZATION_TYPE_ID
|)
|VALUES
|(
| 96,
| 'ЗАО Одуванчик',
| 4
|)
|; END;";

Команды.Execute();

Dzenn
Дата: 20.11.2008 10:48:04
Спасибо!
DOSS
Дата: 20.11.2008 14:37:45
И Oracle "Provider for OLE DB" вместо "Microsoft OLE DB Provider for Oracle".
KOT MATPOCKuH
Дата: 20.11.2008 14:53:39
DOSS
И Oracle "Provider for OLE DB" вместо "Microsoft OLE DB Provider for Oracle".


Так до конца и не понял - от чего зависит наличие того или иного провайдера.
На компах ставилось все одинаково, но в разное время (MS Office, Oracle client - по дефолту, и другой софт).
На одних компах есть оба, на других - один из них, разные....

Мож у АВТОРа такая же ситуация?
lvovel
Дата: 16.09.2011 14:18:25
А как то же самое но только для MySQL? Имеется ввиду какой должен быть синтаксис запроса!