🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82951

Re: FireDAC - błąd połączenia

#82951
From: jh
Date: Tue, 12 Jun 2018 22:27
70 lines
4514 bytes
W dniu poniedziałek, 11 czerwca 2018 17:53:18 UTC+2 użytkownik wloochacz napisał:
> Pokaż Connection InfoReport.

Nie mam tam stałego dostępu, muszę umówić się na zdalną sesję, wtedy zrobię.

> A żeby zobaczyć te Twoje obrazki, to ja się logował na pewno nie będę w MS.
> Sorry.

Chyba nie trzeba się logować...
 
> Tak się zastanawiam - skoro korzystasz z MSSQLa to na cholerę user może 
> sobie cokolwiek wybierać ze sterownikami?
> Ma działać ze SQL Server Nativeclient 11.0 i koniec.
> FireDAC dobiera sterownik automagicznie.
> Znajduje to co ma w systemie.
> Np. jeśli nie ma SQL Server Nativeclient to będzie to Generic MSSQL.
> Kolejna sprawa, to musisz pamiętać o tym, że FireDAC w połączeniu z 
> MSSQL korzysta z podsystemu ODBC.
> Koniec i kropka.

Pewnie masz rację. Coś mi się po głowie kołacze, że miałem taką sytuację, gdzie zwracane dane powodowały błędy, albo też zapytania nie wchodziły, dopóki nie wymusiłem NativeClienta. Stąd w opcjach programu, o ile user jest adminem, można wybrać sterownik.
 
> Reasumując;
> 1. Ma być zainstalowany SQL Server NativeClient 11 for ODBC

Jest.

> 2. Ma być ten sterownik dostępny; nie jestem pewien, czy w środowisku 
> domenowym nie zahacza to o jakieś "uprawnienia"...

Nie powinno. Instalacja jest z msi, ale samo działanie nie wymaga żadnej konfiguracji. Przynajmniej dotąd do opcji instalatora dorzucałem klienta natywnego w zależności do wersji OS (x64/x86) i zawsze działało. Pierwszy raz trafiłem na taki kłopot.
 
> A coś mi tam tak śmierdzi, że podajesz niepoprawny ConnectionString dla 
> FireDAC.
> Komunikat błędu sugeruje, że łączysz się przez ODBC po nazwie połączenia 
> w ODBC (tzw. DSN właśnie) i nie można go w systemie odnaleźć.
> A to jest z gruntu złe rozwiązanie.

Czyszczę parametry połączenia i dodaję ręcznie jedynie to, że sterownik to MSSQL, jaka baza, serwer, user i pass lub łączenie po autentykacji Windows. 

procedure TDM.CreateConnection(AConnection: TFDCustomConnection);
var
  oList: TStringList;
begin
  dlMSSQL.ODBCDriver := AppSettings.ODBCDriver;
  oList := TStringList.Create;
  try
    oList.Add('DriverID=MSSQL');
    oList.Add('Server=' + AppSettings.DBServer);
    oList.Add('ApplicationName=' + APP_NAME_POLISH);
    oList.Add('Database=' + AppSettings.DBName);
    oList.Add('Pooled=False');
    oList.Add('Language=POLISH');
    oList.Add('MARS=YES');
    oList.Add('VariantFormat=vfString');
    oList.Add('ExtendedMetadata=True');
    if AppSettings.DBOSAuth then
      oList.Add('OSAuthent=Yes')
    else begin
      oList.Add('OSAuthent=No');
      oList.Add('User_Name=' + AppSettings.DBLogin);
      oList.Add('Password=' + AppSettings.DBPass);
    end;
    AConnection.Params.Assign(oList);
  finally
    oList.Free;
  end;
end;

jh
Technical Details
Message-ID: <d1ab20ae-570c-4f04-b0b2-9431df5442d4@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!85.12.16.68.MISMATCH!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!u78-v6no858444itb.0!news-out.google.com!z3-v6ni362iti.0!nntp.google.com!u78-v6no858442itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <637108ee-fc9d-4184-891c-09f11211d39e@googlegroups.com> <5b1e9aed$0$679$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a24:7614:: with SMTP id z20-v6mr1082749itb.48.1528842468257;        Tue, 12 Jun 2018 15:27:48 -0700 (PDT)
X-Received: by 2002:aca:eb85:: with SMTP id j127-v6mr72386oih.13.1528842467992; Tue, 12 Jun 2018 15:27:47 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!85.12.16.68.MISMATCH!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!u78-v6no858444itb.0!news-out.google.com!z3-v6ni362iti.0!nntp.google.com!u78-v6no858442itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi.bazy-danych
Date: Tue, 12 Jun 2018 15:27:47 -0700 (PDT)
In-Reply-To: <5b1e9aed$0$679$65785112@news.neostrada.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=91.195.57.114; posting-account=byZjkAoAAACskOVCEuW1n0LwtyGtoZ4m
NNTP-Posting-Host: 91.195.57.114
References: <637108ee-fc9d-4184-891c-09f11211d39e@googlegroups.com> <5b1e9aed$0$679$65785112@news.neostrada.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d1ab20ae-570c-4f04-b0b2-9431df5442d4@googlegroups.com>
Subject: Re: FireDAC - błąd połączenia
From: jh <info.jh.net.pl@gmail.com>
Injection-Date: Tue, 12 Jun 2018 22:27:48 +0000
X-Received-Bytes: 4755
X-Received-Body-CRC: 3461981879
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit