Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Oracle: редактирование таблицы [D6]


SRom ©   (2003-08-22 11:20:00) 

Подскажите, Как с помощью переменной типа TOracleDataSet и метода SetVariable загнать значение в определенную таблицу.
Если можно, дайте фрагмент программного кода. Для определенности будем считать, что таблица называется MyTable и в ней определена колонка DATE. Заранее спасибо. Мы пытаемся сделать это так:

OracleDataSet.SQL.Clear;
strsql1:="select * from MyTable";
OracleDataSet.SQL.Add(strsql1);
//OracleDataSet.open;
y:=OleObj.DscSaleDate;
OracleDataSet.SetVariable(":DATE",y);
OracleDataSet.SQL.Clear;
strsql1:="commit";
OracleDataSet.SQL.Add(strsql1);
OracleDataSet.ExecSQL;
вылетает в последней строке.


Vlad   (2003-08-22 12:22:00) [1]

Не за что, заходите еще :-)


SRom   (2003-08-22 12:19:00) [2]

Спасибо! Получилось.


Vlad   (2003-08-22 12:15:00) [3]

Вот это НЕ НАДО !!!
>> OracleQuery.sql.Text := "Commit";
>> ShowMessage(OracleQuery.SQL.text);
>> OracleQuery.Execute;

В конце поставь на всяк случай OracleSession.Commit;


a_andru   (2003-08-22 12:10:00) [4]

from SRom to Vlad :

OracleQuery.SQL.Add("insert into andru.discount VALUES(: DATE,:BARCODE,:TOTAL_SUM,:RATE)");

ShowMessage(OracleQuery.SQL.text);
y:=OleObj.DscSaleDate;
b:=OleObj.DscSaleBarcode;
ts:=OleObj.DscSaleTotal;
r:=1;

OracleQuery.SetVariable("DATE",y);
OracleQuery.SetVariable("BARCODE",b);
OracleQuery.SetVariable("total_sum",ts);
OracleQuery.SetVariable("Rate",r);

OracleQuery.Execute;
OracleQuery.sql.Text := "Commit";
ShowMessage(OracleQuery.SQL.text);
OracleQuery.Execute;


Vlad   (2003-08-22 12:04:00) [5]

2 SRom (22.08.03 11:59) [9]
приведи код. Как ты это делаешь ?
Я тебе просто пример написал.
DeclareVariables и SetVariables нужно делать для всех переменных запроса.


SRom   (2003-08-22 11:59:00) [6]

2Vlad
Попробовал. Выполняется и не вылетает, только содержимое таблицы не меняется. Чего не хватает?


Johnmen   (2003-08-22 11:57:00) [7]

>Vlad © (22.08.03 11:49) [7]

Э-э-э-э...
Ты путаешь выполнение настоящей SQL команды и анонимного begin блока. :)


Vlad   (2003-08-22 11:49:00) [8]

допустим я сказал.
query.sql.text:="begin commit; end;"
И вперед.
Другое дело, что это тоже самое, что почесать левой нагой за правым ухом.


Johnmen   (2003-08-22 11:43:00) [9]

>Vlad © (22.08.03 11:39) [5]
>Есть такая PL-SQL комманда - commit

Кто сказал, что в ЗАПРОСАХ можно использовать PL-SQL комманды ? :)))))


Vlad   (2003-08-22 11:39:00) [10]

Ребяты, кажется у вас полное непонимание дела.
"Загнать" в таблицу можно с помощью TOracleQuery;
OracleQuery.SQL.Clear;
OracleQuery.SQL.Add("INSERT INTO MYTABLE VALUES (:DATE,.... и все поля таблицы)");
OracleQuery.DeclareVariable("DATE",ftDate);
OracleQuery.SetVariable("DATE",MyDate);
OracleQuery.ExcecSql;

2 Johnmen © (22.08.03 11:37) [4]
Есть такая PL-SQL комманда - commit


Sergey13   (2003-08-22 11:37:00) [11]

2SRom (22.08.03 11:20)
> Мы пытаемся сделать это так:
Долго пытаетесь? 8-)
Я так понял это DOA? Метод SetVariable не предназначен для "загоняния" значений в таблицу. Им "загоняют" значение переменной в запрос. Читайте доки - они рулез. 8-)


Johnmen   (2003-08-22 11:37:00) [12]

Конечно вылетит. Нет такой SQL команды "commit".
Наверное, стОит посмотреть метод Commit соответствующего компонента (...DataBase, ...Transaction).


roottim   (2003-08-22 11:35:00) [13]

даже отвечать нехочется :(, как-то грусно все это...


a_andru   (2003-08-22 11:27:00) [14]

Даже не знаю чем помочь


Наверх

Титульная страница Поиск, карта сайта Написать письмо