Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.11;
Скачать: CL | DM;

Вниз

Oracle: редактирование таблицы   Найти похожие ветки 

 
SRom   (2003-08-22 11:20) [0]

Подскажите, Как с помощью переменной типа 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;
вылетает в последней строке.


 
a_andru ©   (2003-08-22 11:27) [1]

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


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

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


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

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


 
Johnmen ©   (2003-08-22 11:37) [4]

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


 
Vlad ©   (2003-08-22 11:39) [5]

Ребяты, кажется у вас полное непонимание дела.
"Загнать" в таблицу можно с помощью 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


 
Johnmen ©   (2003-08-22 11:43) [6]

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

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


 
Vlad ©   (2003-08-22 11:49) [7]

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


 
Johnmen ©   (2003-08-22 11:57) [8]

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

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


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

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


 
Vlad ©   (2003-08-22 12:04) [10]

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


 
a_andru ©   (2003-08-22 12:10) [11]

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:15) [12]

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

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


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

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


 
Vlad ©   (2003-08-22 12:22) [14]

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



Страницы: 1 вся ветка

Текущий архив: 2003.09.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
1-33643
Andy BitOff
2003-08-30 21:37
2003.09.11
Передача массива в процедуру.


1-33574
Alex17
2003-08-28 16:59
2003.09.11
Ошибка при добавлении нового проекта в Project manager


1-33678
Юлия
2003-08-29 09:41
2003.09.11
Можно ли для treeview сделать возможность отмечать узлы? (check)


3-33514
Jedi
2003-08-19 14:13
2003.09.11
Отобразить запись в DBGrid-e в две строки


1-33653
maker
2003-08-30 16:19
2003.09.11
Запись в файл