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

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

перенос текстовых данных с Дельфи формы в таблицу Oracle [D7]


Страницы:   1 2

ssa ©   (2008-11-10 14:37:00) 

Доброе время суток!
Помогите с кодом переноса текстовых данных с  Дельфи формы в таблицу Oracle. Таблица создана. Данные на форме заполняются. Необходимо их записывать нажатием кнопки в таблицу.Одно нажатие - одна запись в таблице.
с помощью каких компонентов Д7 можно это сделать.


ssa   (2008-11-17 11:51:00) [1]

Petr V. Abramov ©   (13.11.08 23:54) [31]

> через BDE

коннекться не через BDE, я  этот глюкавнике не разбираюсь

<Цитата>
BDE точно глюкавник
получилось соединиться с СУБД Oracle 8.1.7.4 через ADO !!!
типа:
procedure TForm1.Button4Click(Sender: TObject);
begin

with ADOQuery1 do begin
Open;
Append;
try SimpleDataSet1.Active := false;
SimpleDataSet1.DataSet.Active := false;
SimpleDataSet1.DataSet.CommandText :=
'insert into parus.ssa_books2(NDOC,AGN,TR,NOMEN,WT,WB) values ( ' +
'''' +  Edit2.Text + ''', ' +
'''' +  Edit3.Text + ''', ' +
'''' +  Edit4.Text + ''', ' +
'''' +  Edit5.Text + ''', ' +
'''' +  Edit6.Text + ''', ' +
'''' +  Edit7.Text + ''')';
SimpleDataSet1.Active := true;
SimpleDataSet1.DataSet.Active := true;
except
end;
end;

использовались компоненты
   DataSource1: TDataSource;
   ADOConnection1: TADOConnection;
   ADOQuery1: TADOQuery;
   SimpleDataSet1: TSimpleDataSet;

в ADOConnection1: TADOConnection;
правильно надо выбрать провайдера , а строка подключения у меня-
Provider=MSDAORA.1;Password=****;User ID=PARUS;Data Source=ZLAK

спасибо всем !!!


ssa   (2008-11-14 08:44:00) [2]

меняю оракловый альяс на альяс БД PDX35 - все начинает работать

сам оракл без бде работает (ODBC)
соединения через оракловые службы, tns listener и тд
но у базы есть альяс в бде


Petr V. Abramov   (2008-11-13 23:56:00) [3]


> Petr V. Abramov ©   (13.11.08 23:54) [31]

хотя твое "неработанье" с глюками BDE не связано (скорее всего), читай внимательно про TDatabase, TDataset, какие у них есть св-ва и нафих они нужны


Petr V. Abramov   (2008-11-13 23:54:00) [4]


> через BDE

коннекться не через BDE, я  этот глюкавнике не разбираюсь


ssa   (2008-11-13 15:15:00) [5]

procedure TForm1.Button3Click(Sender: TObject);
begin
TmpIn:='DELETE FROM PARUS.ZL_WEIGHT_ALL';
Form1.QurPsk(TmpIn);
end;

не срабатывает даже при

procedure TForm1.QurPsk(TmpIn:String);
begin
  showmessage(TmpIn);
  Query1.SQL.Text:=TmpIn;
try
Query1.ExecSQL;
 except
 on EDBEngineError do
 begin showmessage('Запрос не выполнен !'); end;
 end ;
end;

а в экплоеере DELETE FROM PARUS.ZL_WEIGHT_ALL  работает


ssa   (2008-11-13 15:09:00) [6]

Может быть вставка не срабатывает, тк в оракловой таблице , если смотреть в девелопере есть последний столбик t.rowid ,не относящийся к структуре таблицы zl_weight_all (select t.*, t.rowid from zl_weight_all t)
???


ssa   (2008-11-13 15:04:00) [7]

попробуй Query8, должно сработать.
коннектишься через BDE? dbExpress?

<Цитата>
Query8 ?
D8 - восьмая версия Делфи или?


ssa   (2008-11-13 15:01:00) [8]

через BDE


Petr V. Abramov   (2008-11-13 10:58:00) [9]


> ssa   (12.11.08 16:35) [22]


> компоненты для соединения используются следующие
>   DataSource1: TDataSource;
>   Query1: TQuery;
>   Table1: TTable;

попробуй Query8, должно сработать.
коннектишься через BDE? dbExpress?


Sergey13   (2008-11-13 08:19:00) [10]

> [20] ssa   (12.11.08 15:54)

> if Query1.State <> dsInactive  then
>  Query1.close;
>  Query1.SQL.Clear;
> Query1.SQL.Add(TmpIn);
>  try
>  if not Query1.Prepared then
>  begin
>   Query1.Unidirectional:=True;
>   Query1.Prepare;
>   end;
> Query1.ExecSQL;

Попробуй сократить до

Query1.SQL.Text=TmpIn;
 try
Query1.ExecSQL;


ssa   (2008-11-13 06:15:00) [11]

БД через SQL Explorer открывается нормально


MsGuns   (2008-11-12 22:35:00) [12]

Попробуйте открыть БД через SQL Explorer, используя созданный оракловый алиас


ssa   (2008-11-12 16:35:00) [13]

[20] - пример переноса текстовых данных с д7 в парадох 35 таблицы,
если указываю альяс оракловый и оракловую таблицу в Table1,
то не могу приконнектиться к БД Oracle - ошибка ORA-01012 not logged on
компоненты для соединения используются следующие
  DataSource1: TDataSource;
  Query1: TQuery;
  Table1: TTable;


MsGuns   (2008-11-12 16:01:00) [14]

Какое отношение [20] имеет к сабжу ?
К тому же код ужасный как по форме, так и по содержанию


ssa   (2008-11-12 15:54:00) [15]

Connected to:
Oracle8i Release 8.1.7.4.1

через

   DataSource1: TDataSource;
   Query1: TQuery;
   Table1: TTable;
если указываю альяс для таблиц Paradox35
все срабатывает - вот фрагмент программы:
...
procedure TForm1.QurPsk(TmpIn:String);
begin
   if Query1.State <> dsInactive  then
  Query1.close;
  Query1.SQL.Clear;
  Query1.SQL.Add(TmpIn);
  try
  if not Query1.Prepared then
  begin
   Query1.Unidirectional:=True;
   Query1.Prepare;
   end;
 Query1.ExecSQL;
 showmessage('insert');
 except
 on EDBEngineError do
 begin showmessage('Запрос не выполнен !'); end;
 end ;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
   TmpIn:='INSERT INTO W_ALL.DB(RN,COMPANY,DOCPREF,DOCNUMB,'+
        'W_T, W_B, D_T, D_B, U_T, U_B, WM, TR, NOMEN,AGN)'+
 ' VALUES(' +
         '8'+Edit1.Text        +','+         //RN
         '17100001'            +','+         //COMPANY
 '"'+    Edit2.Text        +'"'+','+         //DOCPREF
 '"'+    Edit1.Text        +'"'+','+         //DOCNUMB
         Edit5.Text            +','+         //W_T
         Edit6.Text            +','+         //W_B
 '"'+    DateToStr(now)    +'"'+','+         //D_T
 '"'+    DateToStr(now)    +'"'+','+         //D_T
 '"'+    'VESOVAYA3'       +'"'+','+         //U_T
 '"'+    'VESOVAYA3'       +'"'+','+         //U_B
 '"'+    'Автовесы №3'     +'"'+','+         //WM
 '"'+    Edit2.Text        +'"'+','+         //TR
 '"'+    ComboBox2.Text    +'"'+','+         //NOMEN
 '"'+    ComboBox1.Text    +'"'+')';         //AGN}
Form1.QurPsk(TmpIn);

end;
...

но хотелось скидывать эту информацию в БД Oracle8i Release 8.1.7.4.1


Petr V. Abramov   (2008-11-11 23:17:00) [16]


> Cause: A host language program issued an Oracle call, other
> than OLON or OLOGON

похоже, пытаются работать в режиме совместимости с Oracle7
Автор, скажи, какие компоненты используешь, версию Oracle, и как пытаешься коннектиться.


MsGuns   (2008-11-11 22:35:00) [17]

Если работаете через BDE, то ей нужен алиас. Создайте и настройте его например в BDE администраторе, а затем подключите TDataBase к этому алиасу. Которче, справка по TDataBase + TSession Вам все подробно расскажет


ANB   (2008-11-11 18:49:00) [18]


> ssa   (10.11.08 16:23) [15]
> для
> Database1: TDatabase;
>   SP1: TStoredProc;
> как свойства изначально выставить
> (типа Active, SessionName, Connected,KeepConnection...

Тебе оракл честно говорит - законнектсясначала, потом дергай хранимки.

ODAC поставь - на седняшний момент одна из самых удобных библиотек.


ssa   (2008-11-10 16:25:00) [19]

ORA-01012 not logged on

Cause: A host language program issued an Oracle call, other than OLON or OLOGON, without being logged on to  Oracle. This can occur when a user process attempts to access the database after the instance it is connected to  terminates, forcing the process to disconnect.


ssa   (2008-11-10 16:23:00) [20]

для
Database1: TDatabase;
  SP1: TStoredProc;
как свойства изначально выставить
(типа Active, SessionName, Connected,KeepConnection...


Страницы:   1 2

Наверх

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