Текущий архив: 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.47 MB
Время: 0.008 c