Конференция "Базы" » перенос текстовых данных с Дельфи формы в таблицу Oracle [D7]
 
  • ssa (10.11.08 14:37) [0]
    Доброе время суток!
    Помогите с кодом переноса текстовых данных с  Дельфи формы в таблицу Oracle. Таблица создана. Данные на форме заполняются. Необходимо их записывать нажатием кнопки в таблицу.Одно нажатие - одна запись в таблице.
    с помощью каких компонентов Д7 можно это сделать.
  • GRAND © (10.11.08 14:42) [1]
    Данные на форме в какие компоненты заполняются? Если, например, имеем текст в TMemo, то для непосредственной работы с текстом в БД нужно использовать TDBMemo. TEdit - TDBEdit и т.п. Только надо не забыть, что DB-компоненты требуют привязки к конкретным таблицам и полям в базе: пропертя DataSource и DataField.
  • Sergey13 © (10.11.08 14:46) [2]
    > [0] ssa   (10.11.08 14:37)

    Достаточно прочитать хотя бы одну статейку в стиле "Делфи за 21 день".
  • ssa (10.11.08 14:56) [3]
    Даннае на форме - Edit.text или Combobox.text
    в девелопере могу написать прцедуру (где входные параметры будут тексты с  дельфи формы) вставки данных в таблицу Оракла
     какие лучше компоненты использовать для передачи в процедуру и какой код при этом выполнить
  • Поросенок Винни-Пух © (10.11.08 15:02) [4]
    А какие у тебя есть?
  • Сергей М. © (10.11.08 15:04) [5]

    > какие лучше компоненты использовать для передачи в процедуру


    Когда нет четко обозначенных критериев оценки на "лучше-хуже" и нет желания читать буквари, можно смело использовать первые попавшиеся или никакие не использовать.
  • ssa (10.11.08 15:14) [6]
    У меня D7 и хотел  через хранимую процедуру StoreProc - (stpParus)

        with stpParus do
       begin
         ParamByName('sDOCNUMB').AsString := edtNumber.Text;
         ParamByName('sAGN').AsString := sAGN;
         ParamByName('sTRANSPORT').AsString := edtTransp.Text;
         ParamByName('sNOMEN').AsString := sNM;
        ....
         Prepare;
     ExecProc;
     end;

    а в девелопере такая процедура
    create or replace procedure P_ZL_GRAIN_WEIGHT
    (
     sDOCNUMB       in varchar2,      
     nWEIGHT_TARE   in number,        
     nWEIGHT_BRUTTO in number,        
     dTARE_DATE     in date,          
     dBRUTTO_DATE   in date,          
     sTARE_USER     in varchar2,      
    --  sBRUTTO_USER   in varchar2,      
     sWEIGHTMECH    in varchar2,      
     sAGN           in varchar2,      
     sTRANSPORT     in varchar2,      
     sNOMEN         in varchar2        

    ) is
    nRN1       ZL_SSA_GRAIN_WEIGHT.RN%TYPE;
    nAGN_RN   ZL_SSA_GRAIN_WEIGHT.AGN_RN%TYPE;

    begin

      nRN1 := gen_id;

      SELECT A.RN into nAGN_RN FROM AGNLIST A WHERE TRIM(A.AGNABBR)=TRIM(sAGN);

    insert into ZL_SSA_GRAIN_WEIGHT
    (
    RN,
    COMPANY,
    DOCPREF,
    DOCNUMB,
    WEIGHT_TARE,
    WEIGHT_BRUTTO,
    TARE_DATE,
    BRUTTO_DATE,
    TARE_USER,
    BRUTTO_USER,
    WEIGHTMECH,
    AGN_RN,
    TRANSPORT,
    NOMEN
    )
    values (
    nRN1,
    1710001,
    '08',
    sDOCNUMB,
    nWEIGHT_TARE,
    nWEIGHT_BRUTTO,
    dTARE_DATE,
    dBRUTTO_DATE,
    sTARE_USER,
    sTARE_USER,
    --sBRUTTO_USER,
    sWEIGHTMECH,
    nAGN_RN,
    sTRANSPORT,
    sNOMEN  
    );
    commit;  
     
       
    end P_ZL_GRAIN_WEIGHT;
  • ssa (10.11.08 15:21) [7]
    во первых не спрашивает логин и пароль
    хотя в LoginPromt - true и Params - указан логин и пароль
  • ssa (10.11.08 15:23) [8]
    при выполнении sp возникает ошибка no logon on
    где неправильно у меня
  • Сергей М. © (10.11.08 15:38) [9]
    для начала настрой правильно BDE-алиас
  • ssa (10.11.08 15:55) [10]
    бде настроил, указал имя процедуры увидел параметры
    создал кнопку где прописал
    procedure TForm1.Button3Click(Sender: TObject);
    begin
      with  sP1 do
      begin
       ParamByName('SDOCNUMB').AsString:=Edit2.Text;
       ParamByName('NWEIGHT_TARE').Value:=strtofloat(Edit6.Text);
       ParamByName('NWEIGHT_BRUTTO').Value:=strtofloat(Edit7.Text);
       ParamByName('DTARE_DATE').AsDateTime:=now;
       ParamByName('DBRUTTO_DATE').AsDateTime:=now;
       ParamByName('STARE_USER').AsString:=Edit2.Text;
       ParamByName('SWEIGHTMECH').AsString:=Edit2.Text;
       ParamByName('SAGN').AsString:=Edit3.Text;
       ParamByName('STRANSPORT').AsString:=Edit4.Text;
       ParamByName('SNOMEN').AsString:=Edit5.Text;
       Prepare;
       Execute;
      end;
    end;

    при компиляции
    ошибка [Fatal Error] PrTest.dpr(2): Read error on 'c:\program files\borland\delphi7\Lib\System.dcu'
  • MsGuns © (10.11.08 15:56) [11]
    Через какие компоненты работаете ?
    Очевидно, запрос даже не доходит до сервера.
  • ssa (10.11.08 15:57) [12]
    Database1: TDatabase;
       SP1: TStoredProc;
  • Поросенок Винни-Пух © (10.11.08 16:00) [13]
    ошибка [Fatal Error] PrTest.dpr(2): Read error on 'c:\program files\borland\delphi7\Lib\System.dcu'

    У тебя компьютер плохой. менять надо.
  • ssa (10.11.08 16:19) [14]
    эту ошибку я победил
    не могу  not logged on Alias ZLAK - ora 01012
  • ssa (10.11.08 16:23) [15]
    для
    Database1: TDatabase;
      SP1: TStoredProc;
    как свойства изначально выставить
    (типа Active, SessionName, Connected,KeepConnection...
  • ssa (10.11.08 16:25) [16]
    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.
  • ANB (11.11.08 18:49) [17]

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

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

    ODAC поставь - на седняшний момент одна из самых удобных библиотек.
  • MsGuns © (11.11.08 22:35) [18]
    Если работаете через BDE, то ей нужен алиас. Создайте и настройте его например в BDE администраторе, а затем подключите TDataBase к этому алиасу. Которче, справка по TDataBase + TSession Вам все подробно расскажет
  • Petr V. Abramov © (11.11.08 23:17) [19]

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

    похоже, пытаются работать в режиме совместимости с Oracle7
    Автор, скажи, какие компоненты используешь, версию Oracle, и как пытаешься коннектиться.
 
Конференция "Базы" » перенос текстовых данных с Дельфи формы в таблицу Oracle [D7]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]