powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не пойму я это ADO
4 сообщений из 4, страница 1 из 1
Не пойму я это ADO
    #32068431
Кирилл_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа помогите начинающему с ADO, пожалуйста.
Есть вот код в DELPHI 6

ADOConnection1.ConnectionString:='Provider=MSDAORA.1;User ID=tkg;Data Source=tkg;Persist Security Info=False';
for i:=8 to 15 do
.
.
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO TRUNKGROUPS1 (comm_id,dev_id,tkg_name)');
ADOQuery1.SQL.Add('VALUES (:c1,:c2,:c3)');
ADOQuery1.Parameters[0].Value:=c1;
ADOQuery1.Parameters.value:=c2;
ADOQuery1.Parameters.value:=c3;
ADOQuery1.ExecSQL;
ADOQuery1.Close;
end;

1. при компиляции:
Выдается , что произошла ошибка для которой невозможно загрузить сообщение из ORACLE.
2.если запустить exe , то программа виснет , но заливается только одна запись.

Может в коде чего неправильно.
Зараннее спасибо
...
Рейтинг: 0 / 0
Не пойму я это ADO
    #32068439
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя в цикле переменная "i" не используется совсем.
Значение же ты присваиваешь только одному и тому же элементу [0],
А в двух случаях вообще не понятно какому элементу ты присваиваешь:

"ADOQuery1.Parameters[0].Value:=c1;
ADOQuery1.Parameters.value:=c2;
ADOQuery1.Parameters.value:=c3; "

Из двух последних строчек видно что последняя строка просто перетирает значение, присвоенное в предыдущей строке.
...
Рейтинг: 0 / 0
Не пойму я это ADO
    #32068445
Кирилл_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код правильный это глюки при вставке кода , и первый и второй параметры указаны.
...
Рейтинг: 0 / 0
Не пойму я это ADO
    #32068449
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так вставь по человечески.
Кстати не понятно, зачем ты в цикле делаешь:

"ADOQuery1.SQL.Add('INSERT INTO TRUNKGROUPS1 (comm_id,dev_id,tkg_name)');
ADOQuery1.SQL.Add('VALUES (:c1,:c2,:c3)');
"

Если ты используешь привязку переменных, тогда достаточно один раз перед циклом это сделать.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
ADOConnection1.ConnectionString:='Provider=MSDAORA.1;Use
r ID=tkg;Data Source=tkg;Persist Security Info=False'; 
ADOQuery1.Close; 
ADOQuery1.SQL.Clear; 
ADOQuery1.SQL.Add('INSERT INTO TRUNKGROUPS1 (comm_id,dev_id,tkg_name)'); 
ADOQuery1.SQL.Add('VALUES (:c1,:c2,:c3)'); 

for i:= 8  to  15  do 
. 
. 
ADOQuery1.Parameters[ 0 ].Value:=c1; 
ADOQuery1.Parameters[ 1 ].value:=c2; 
ADOQuery1.Parameters[ 2 ].value:=c3; 
ADOQuery1.ExecSQL; 
end; 

ADOQuery1.Close; 


Потом еще раз напоминаю про "i". Может у тебя значения c1,c2,c3 в цикле не меняются, а на таблицу primary key срабатывает, поэтому только одна строка и вставляется.

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


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