Połączenie z bazą Oracle

0

Witam,
mam problem z połączeniem się z bazą danych ORACLE 11g.

Zainstalowałem Oracle Database Express Edition 11g Release 2, uruchomiłem SQL DEVELOPER stworzyłem nową tabele.

W Delphi w ADOConnection1 w polu ConnectionString wybrałem:

92879a2710.png

Tutaj widziałem, że niektórzy posiadają orcl, niestety u mnie tego nie wyświetla.
Muszę zmienić SID w SQL DEVELOPER?(Mam tam wpisane xe, jeśli zmienie na orcl otrzymuję błąd).

9c5d3673ae.png

Podałem nazwę użytkownika oraz hasło(bez nich test połączenia jest również pozytywny), kliknąłem Testuj połaczenie i wszystko w porzadku.

W komponencie ADOQuery1 w Connection wybrałem ADOConnection1.
w Sql wpisałem

Select * FROM LUKASZ

Po ustawieniu Active:=True w ADOQuery1 otrzymuję błąd

85ef6b83e7.png.

Czy ktoś pomoże mi uporać się z tym problemem?
Proszę o pomoc.

0

dlaczego ten sterownik a nie ten, który ma oracle w nazwie?

0

Nie rozumiem o jakim sterowniku mówisz.

Może coś w tym jest nie tak:

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/r2/prod/appdev/sqldev/sqldev_mngdb/sqldev_mngdb_otn.htm

Tutaj należy ściągnąć plik sqldev_mngdb.zip , oraz rozpakować do folderu gdzie jest zainstalowany oracle.
Ale nie wiem dokładnie gdzie...

Myślę że w sqldeveloper muszę w SID umieścić orcl a nie jak dotychczas xe(no i właśnie chodzi o miejsce rozpakowania folderu).

0
lukasz_p92 napisał(a):

Nie rozumiem o jakim sterowniku mówisz.

To nie zupełnie tak; Ty w ogóle nie rozumiesz co robisz ;-)
Próbujesz połączyć się z bazą Oracle używając sterownika dla dBASE (doczytaj z łaski swojej co to jest ten dBASE). Spoko.
Równie dobrze możesz próbować na księżyc lecieć furmanką - efekt będzie identyczny.

Może coś w tym jest nie tak:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/r2/prod/appdev/sqldev/sqldev_mngdb/sqldev_mngdb_otn.htm

Tutaj należy ściągnąć plik sqldev_mngdb.zip , oraz rozpakować do folderu gdzie jest zainstalowany oracle.
Ale nie wiem dokładnie gdzie...
Myślę że w sqldeveloper muszę w SID umieścić orcl a nie jak dotychczas xe(no i właśnie chodzi o miejsce rozpakowania folderu).

A co ma piernik do wiatraka?
Zassaj sobie sterownik ODBC dla Oracle i tyle.
Tyle, że Oracle to jest "Enterprise Database" i tam najprostsze rzeczy są mega przekombinowane.... Np. instalacja sterownika ODBC, który jest w paczce klient zajmującej 650 MB. A co.
Poczytaj:
http://www.connectionstrings.[...]elease-2-client-odbc-drivers/

Zamiast ODBC możesz użyć OLE DB Provider for Oracle:
http://www.oracle.com/technet[...]ase/windows/index-089115.html

0
WTF napisał(a):

Tyle, że Oracle to jest "Enterprise Database" i tam najprostsze rzeczy są mega przekombinowane.... Np. instalacja sterownika ODBC, który jest w paczce klient zajmującej 650 MB. A co.

Sratatata - jak ma zainstalowanego XE to ma i klienta - po co ma instalować innego. To po pierwsze. Po drugie jak potrzebujesz całą paczkę to ściągasz 600MB - twoja sprawa. Jak nie potrzebujesz to ściągasz instant clienta.

0
abrakadaber napisał(a):
WTF napisał(a):

Tyle, że Oracle to jest "Enterprise Database" i tam najprostsze rzeczy są mega przekombinowane.... Np. instalacja sterownika ODBC, który jest w paczce klient zajmującej 650 MB. A co.

Sratatata - jak ma zainstalowanego XE to ma i klienta - po co ma instalować innego. To po pierwsze. Po drugie jak potrzebujesz całą paczkę to ściągasz 600MB - twoja sprawa. Jak nie potrzebujesz to ściągasz instant clienta.

Skoro wszystko ma to dlaczego mu nie działa, panie sratatata?
A Instant Client <> ODBC; trzeba jeszcze do IC doinstalować biblioteki ODBC.

0

pewnie dlatego panie wszechwiedzący, że ma wybrane sterowniki dla DBASE a nie dla oracle. Poza tym połączeni mu działa bo "Zainstalowałem Oracle Database Express Edition 11g Release 2, uruchomiłem SQL DEVELOPER stworzyłem nową tabele." czyli jakoś się połączył bez instalacji dodatkowych klientów.

@wloochacz masz jakiś problem do mnie czy po prostu lubisz się [CIACH!]?

0
abrakadaber napisał(a):

pewnie dlatego panie wszechwiedzący, że ma wybrane sterowniki dla DBASE a nie dla oracle. Poza tym połączeni mu działa bo "Zainstalowałem Oracle Database Express Edition 11g Release 2, uruchomiłem SQL DEVELOPER stworzyłem nową tabele." czyli jakoś się połączył bez instalacji dodatkowych klientów.

OP chce łączyć się za pomocą ODBC, a SQL Developer OIDP, nie wymaga żadnego klienta (połączenie bezpośrednie TCP/IP z bazą danych.) - a na pewno nie wymaga ODBC, które trzeba doinstalować, bo jest to opcja!

@wloochacz masz jakiś problem do mnie czy po prostu lubisz się [CIACH!]?

Lubię do każdego kto pitoli trzy-po-trzy, tak jak ty w tym wątku.
Chętniej bym przeczytał jak odpisujesz OP na pytanie - jak ma zainstalować sterownik ODBC dla Oracle?

2

słuchaj wiesz dużo (tak, znam Cię jeszcze z plcd, i mam jakieś pojęcie o tym co i jak tworzysz) ale zaczynasz mieć kompleks boga. Traktujesz każdego jak przygłupa, który nie wie co robi. Niech wreszcie dotrze do ciebie, że nie pozjadałeś wszystkich rozumów. Pytacz zadał proste pytanie - czemu nie działa. Odpowiedź na nie jest równie prosta - BO MA WYBRANY ZŁY STEROWNIK - DBASE ZAMIAST ORACLE. Koniec i kropka. Nie musi niczego instalować, nic ustawiać. Wszystko ma już w systemie od momentu zainstalowania bazy Oracle XE 11. Chcesz dowodu - proszę bardzo, specjalnie dla Ciebie:

  1. czysty windows XP (akurat taki obraz miałem pod ręką) z zainstalowanym tylko i wyłącznie Oracle XE 11

ADO3.png

  1. utworzony user test z hasłem test

  2. CAŁY PROGRAM

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB;

type
  TForm1 = class(TForm)
    con1: TADOConnection;
    qry1: TADOQuery;
    btn1: TButton;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
  qry1.SQL.Text := 'SELECT sysdate FROM dual';
  qry1.Open;
  ShowMessage(DateToStr(qry1.Fields[0].AsDateTime));
  qry1.Close;
end;

end.
object Form1: TForm1
  Left = 270
  Top = 61
  Width = 928
  Height = 480
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object btn1: TButton
    Left = 160
    Top = 120
    Width = 75
    Height = 25
    Caption = 'btn1'
    TabOrder = 0
    OnClick = btn1Click
  end
  object con1: TADOConnection
    ConnectionString = 
      'Provider=MSDAORA.1;Password=test;User ID=test;Data Source=xe;Per' +
      'sist Security Info=True'
    Provider = 'MSDAORA.1'
    Left = 104
    Top = 48
  end
  object qry1: TADOQuery
    Connection = con1
    Parameters = <>
    Left = 104
    Top = 120
  end
end
  1. ADOCOnnection ustawione tak

ADO1.png
ADO2.png

  1. i wynik na VM:

ADO4.png

O dziwo działa, nie chce sterowników, nie wywala że brak klienta - jednym słowem cud.
Ale dla Ciebie pewnie i to będzie za mało. A sterowniki do ODBC instaluje tak jak proponuje Oracle - ściągam InstantClienta Basic i do tego ODBC Supplement. Wypakowywuje, dodaje ścieżkę do zmiennej systemowej PATH, ustawiam TNS_ADMIN i NLS_LANGUAGE a na koniec uruchamiam odbc_install.exe po czym w Źródła danych ODBC mam pozycję Oracle in Client xx, gdzie xx to wersja klienta Oracle. I jakoś to działa - fakt, że kulawo, zamiast e zwraca t a zamiast 7 zwraca Q ale klienci się przyzwyczaili i już nie marudzą...

dodanie znacznika <code class="delphi"> - @furious programming

0

Ściągnąłem Instant Client Package -instantclient-basic-windows.x64-12.1.0.2.0.zip
Oraz Instant Client Package - ODBC- instantclient-odbc-windows.x64-12.1.0.2.0.zip
*Wypakowałem

@abrakadaber powiesz mi jaką ścieżkę mam dodać do zmiennej systemowej PATH, i gdzie ustawić TNS_ADMIN i NLS_LANGUAGE ?

Pewnie wtedy mi to ruszy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0