Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
8-33696
Алексей
2003-05-14 16:00
2003.09.11
DelphiX и DirectX


7-33831
Kirill_S
2003-06-12 10:52
2003.09.11
скрыть процесс в Win2000


1-33582
Luc
2003-08-28 15:45
2003.09.11
Как получить Sender а по левому клику мышкой?


3-33446
stud
2003-08-21 13:24
2003.09.11
select на дерево


1-33657
Mohamed
2003-08-29 20:58
2003.09.11
Progress bar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский