Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Oracle+Delphi, передача данных 
V
    Опции темы
Данкинг
Дата 22.12.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(AyanTai @  22.12.2008,  12:22 Найти цитируемый пост)
Код

Form1.ADOQuery1.FieldByName('Имя').AsString:=Form1.Table1.FieldByName('Имя').AsString;
    Form1.ADOQuery1.SQL.Add(const1+ Form1.ADOQuery1.FieldByName('Имя').AsString + const3);

 smile  smile  smile 
Зачем тебе изменять поля AdoQuery и вручную, и запросом одновременно? Говорю же, посмотри мой пример! smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AyanTai
Дата 22.12.2008, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



туплю...исправил..

procedure DbfToOrc();    // Âûïîëíèòü
begin
Form1.Table1.First;

While not Form1.Table1.Eof do
    begin
    Form1.ADOQuery1.Open;
    Form1.ADOQuery1.Edit;
    Form1.ADOQuery1.FieldByName('Имя').AsString:=Form1.Table1.FieldByName('Имя').AsString;
    что здесь надо вставить чтоб записывалось имя - а то у меня просто поверх старого имени записывает новое
    Form1.Table1.Next;
    end;



Данкинг  -  не могу понять что у тя в примере подошло бы к моей проге((  smile 
 smile 
PM MAIL   Вверх
Kbl4AH
Дата 22.12.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(AyanTai @  22.12.2008,  12:26 Найти цитируемый пост)
"ORA-00933: SQL command not property ended"

Ошибка в тексте запроса... Делфи здесь не причем... исправляй запрос...
Перед выполнением нового запроса текст старого нужно очищать...
Я вместо  Form1.ADOQuery1.SQL.Add(...); использую  Form1.ADOQuery1.SQL.Text := ...;
PM MAIL ICQ   Вверх
Данкинг
Дата 22.12.2008, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(AyanTai @  22.12.2008,  12:49 Найти цитируемый пост)
 не могу понять что у тя в примере подошло бы к моей проге

Проход в цикле по таблице DBF и запись значений полей в Oracle...


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AyanTai
Дата 23.12.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



ребята все заработало спасибо, но есть одно НО: записывается только последнее значение...как быть???
вот как сделал: 
procedure DbfToOrc();    // Выполнить
begin
Form1.Table1.First;
While not Form1.Table1.Eof do
    begin
    Form1.ADOQuery1.Open;
    Form1.ADOQuery1.Edit;
    Form1.ADOQuery1.FieldByName('Имя').AsVariant:=Form1.Table1.FieldByName('Имя').AsVariant;
    Form1.ADOQuery1.post;
    Form1.Table1.Next;
    end;
PM MAIL   Вверх
Kbl4AH
Дата 23.12.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(AyanTai @  23.12.2008,  10:48 Найти цитируемый пост)
но есть одно НО: записывается только последнее значение...как быть???

Ты записи Table перебираешь, а ADOQuery1 - нет... у тебя получается все разы в цикле только одна запись апдейтится... в ADOQuery1 тоже нужно записи перебирать...
наверное, так:
Код

Form1.Table1.First;
Form1.ADOQuery1.First;
While not Form1.Table1.Eof do
    begin
    Form1.ADOQuery1.Open;
    Form1.ADOQuery1.Edit;
    Form1.ADOQuery1.FieldByName('Имя').AsVariant:=Form1.Table1.FieldByName('Имя').AsVariant;
    Form1.ADOQuery1.post;
    Form1.Table1.Next;
    Form1.ADOQuery1.Next;
    end;


Это сообщение отредактировал(а) Kbl4AH - 23.12.2008, 11:24
PM MAIL ICQ   Вверх
Данкинг
Дата 23.12.2008, 11:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Используйте insert into... , господа!! smile Как у меня в примере: в AdoTable получаем данные из .dbf, а затем вставляем их в цикле (но запросом) в ORA-таблицу!


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AyanTai
Дата 23.12.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



Kbl4AH  -  не получаетсЯ (((.
Данкинг  -  сейчас попробую... просто не пойму какая разница как получены данные в грид, и соотв как записываются ...?
PM MAIL   Вверх
Kbl4AH
Дата 23.12.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



а если Form1.ADOQuery1.Open; до цикла поставить?
PM MAIL ICQ   Вверх
AyanTai
Дата 23.12.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



Kbl4AH,  и при такой конструкции ничего не получается(((

procedure DbfToOrc();    
begin
Form1.Table1.First;
Form1.ADOQuery1.Open;
Form1.ADOQuery1.First;

While not Form1.Table1.Eof do
    begin

    Form1.ADOQuery1.Edit;
    Form1.ADOQuery1.FieldByName('bukrs').AsVariant:=Form1.Table1.FieldByName('bukrs').AsVariant;
    Form1.ADOQuery1.post;
    Form1.ADOQuery1.Next;
    Form1.Table1.Next;

    end;
PM MAIL   Вверх
AyanTai
Дата 23.12.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



Данкинг  - тыж тут только создаешь таблицу! где передача данных?? или я уже туплю...покажи.
zapros.sql.Text:='create table '+trim(LabeledEdit1.Text)+'2'+' (taff varchar2 (5))';

PM MAIL   Вверх
Kbl4AH
Дата 23.12.2008, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Перечитал заново 1-й пост... что сделать-то нужно? из грида вставить записи в оракловую таблицу?
Цитата(AyanTai @  19.12.2008,  11:34 Найти цитируемый пост)
Задача в следующем: есть папка с файлами *.dbf (в которых есть поля: Фамилия |имя|Отчество|ID, ID пустой), так же есть таблица в БД Оракл с теми же полями (Фамилия |имя|Отчество|ID, НО  ID не пустой). нужно прочитать данные из *.dbf, сравнить с таблицей Оракла и совпадающим по ФИО полям присвоить ID. и все выложить обратно в *.DBF файл. использую BDE(для открытия DBF) и ADO(соединение с ораклом). создал таблицу(пусть будет ОРА) в Оракле(однотипную что и DBF файл). затем в Table1 вывожу данные из выбранного файла и отражаю все в гриде...теперь хочу передать данные в пустую созданную таблицу(ОРА)

не понял что-тут написано... что значит сравнить с таблицей Оракла? и передать данные в пустую созданную таблицу(ОРА)?
так таблица в Оракле пустая или нет?
PM MAIL ICQ   Вверх
Данкинг
Дата 23.12.2008, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(AyanTai @  23.12.2008,  15:01 Найти цитируемый пост)
где передача данных

Ну правильно, а дальше там цикл по заполнению должен быть.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AyanTai
Дата 24.12.2008, 05:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



Kbl4AH,  - нужно просто передать данные в пустую таблицу Оракла(таблица в Оракле создана и имеет ту же структуру что и файл DBF), в гриде я файл DBF отразил теперь надо просто перегнать данные в  таблицу Оракла. 
PS: а потом уже будет таблица полученная преобразовываться...

Данкинг,  - у меня не хватает какого-то компонента ... мож из-за этого. таблицу создает, а данные не передает...(


что делать??? smile   smile  
PM MAIL   Вверх
AyanTai
Дата 24.12.2008, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



все ребята сделал...всем спасибо большое!!!  smile 
отдельное спасибо: 
Данкинг, 
Kbl4AH, 
Brees - респект за помощь...
кстати сделал вот так: 

procedure IsertToOrcl();
 begin
  ADOQuery1.SQL := 'INSERT INTO ORA (Имя)VALUES (:Имя)';
  Table1.Open;
  Table1.First;
  while not Table1.Eof do
  begin
    ADOQuery1.Close;
    ADOQuery1.ParamByName('bukrs').Value :=
      Table1.FieldByName('bukrs').value;
    ADOQuery1.ExecSQL;
    Table1.Next;
  end;
 end;


Это сообщение отредактировал(а) AyanTai - 24.12.2008, 08:29
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1028 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.