Autor Téma: připojení na databázi  (Přečteno 7442 krát)

rustymattock

  • Host
připojení na databázi
« kdy: 19-11-2012, 19:03:56 »
Zdravím kluci...

Potřeboval bych od vás základní připojení k MSSQL (jednoduchý kód, nebo správné vyplnění vizuální komponenty)
Nejlépe pro komponentu ZEOS (ale případně si nechám poradit). Mě tam píše, že servr neexistuje, nebo byl odepřed přístup.
Připojení a práce s MySQL je bez problémů, ale MSSQL vidím porvé v životě a bohužel se mu nemůžu vyhnout
Delphi 7
MSSQL 2008

děkuji

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 571
  • Karma: 25
Re:připojení na databázi
« Odpověď #1 kdy: 19-11-2012, 19:41:37 »
Existuje ten server? Problém může být třeba v tom, že mssql defaultně nemá povolený přístup přes TCP/IP, musíš to zapnout v konfiguraci serveru.

rustymattock

  • Host
Re:připojení na databázi
« Odpověď #2 kdy: 19-11-2012, 23:09:10 »
TCP/IP byl implicitně opravdu vypnutý, takže děkuji za radu.
Nicméně pořád se nepřipojím.
Na přiloženém obrázku je pár detailů, které by mohli pomoct při řešení, jelikož já se nedokážu hnout.


http://rustymattock.sweb.cz/qwe.JPG

P.S:předpokládám snad správně, že User má být dle nastavení "LocalSystem"

Offline Alnath

  • Příspěvků: 49
  • Karma: 2
Re:připojení na databázi
« Odpověď #3 kdy: 20-11-2012, 10:13:11 »
Především si spusť i službu Server Browser. Tohle je sice pro server 2005, ale bude to podobné i pro 2008: http://support.microsoft.com/kb/914277/en-us

Hlavně je třeba mít nakonfigurovaná práva i pro databázi, ke které se chceš připojit. Buď SQL účet nebo uživatele z AD a tento účet pak správně zadat v klientovi.

Offline Alnath

  • Příspěvků: 49
  • Karma: 2
Re:připojení na databázi
« Odpověď #4 kdy: 20-11-2012, 10:19:39 »
Možná pomůže i toto: http://blogs.msdn.com/b/walzenbach/archive/2010/04/14/how-to-enable-remote-connections-in-sql-server-2008.aspx

Offline Alnath

  • Příspěvků: 49
  • Karma: 2
Re:připojení na databázi
« Odpověď #5 kdy: 20-11-2012, 10:24:56 »
Jo a ještě skriptík na otevření potřebných děr do firewallu, abys to nemusel dělat "pěšky" - ulož si následující jako např. SQLfirewall.cmd a spusť:

@rem firewallconfig.cmd by Rob Kerr 
@echo =========  SQL Server Ports  ===================
@echo Enabling SQLServer default instance port 1433
netsh firewall set portopening TCP 1433 "SQLServer"
@echo Enabling Dedicated Admin Connection port 1434
netsh firewall set portopening TCP 1434 "SQL Admin Connection"
@echo Enabling conventional SQL Server Service Broker port 4022 
netsh firewall set portopening TCP 4022 "SQL Service Broker"
@echo Enabling Transact-SQL Debugger/RPC port 135
netsh firewall set portopening TCP 135 "SQL Debugger/RPC"
@echo =========  Analysis Services Ports  ==============
@echo Enabling SSAS Default Instance port 2383
netsh firewall set portopening TCP 2383 "Analysis Services"
@echo Enabling SQL Server Browser Service port 2382
netsh firewall set portopening TCP 2382 "SQL Browser"
@echo =========  Misc Applications  ==============
@echo Enabling HTTP port 80
netsh firewall set portopening TCP 80 "HTTP"
@echo Enabling SSL port 443
netsh firewall set portopening TCP 443 "SSL"
@echo Enabling port for SQL Server Browser Service's 'Browse' Button
netsh firewall set portopening UDP 1434 "SQL Browser"
@echo Allowing multicast broadcast response on UDP (Browser Service Enumerations OK)

netsh firewall set multicastbroadcastresponse ENABLE

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 571
  • Karma: 25
Re:připojení na databázi
« Odpověď #6 kdy: 20-11-2012, 12:23:48 »
Taky může být problém v právech, defaultně je povolena jenom windows authentikace. Pokud tam chceš založit usery s heslem, tak hledej mixed mode (nebo to můžeš nastavit třeba v management studiu, ale to musíš nainstalovat a musíš se k serveru připojit).

rustymattock

  • Host
Re:připojení na databázi
« Odpověď #7 kdy: 20-11-2012, 13:56:19 »
ta konfigurace práv pro databázi se mi předběžně jeví jako nejpravděpodobnější řešení problému.
Při vytvoření databáze v managment studiu mi to totiž nikde možnost vytvoření účtu nedalo. Takže jen střílím při zadávání přihlašovacích údajů do ZEOS komponenty.
Kde je možné k databázi vytvořit/změnit přístupové práva ?

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 571
  • Karma: 25
Re:připojení na databázi
« Odpověď #8 kdy: 20-11-2012, 14:42:46 »
pod serverem je sekce security, pod ni logins. Tam muzes pridat usera a nastavit mu prava pro jednotlive db. Defautlne to ale pouziva windows auth, takze se tam zadnym loginem nepripojis, v prihlasovacim dialogu bys mel vybrat windows authentication.

rustymattock

  • Host
Re:připojení na databázi
« Odpověď #9 kdy: 20-11-2012, 17:37:15 »
tak by sme se mohli dopracovat k jednoduchému připojení na nějakém modelovém nastavení...
Mám nastaven ten windows auth, takže v podstatě se potřebuji dopátrat co zadám jako "User", jestli zadám vůbec nějaké heslo (jestli jo, jaké, když do WIN se přes heslo nepřihlašuji) a co zadat do "HostName" (předpokládám, že localhost, jelikož pro začátek budu experimentovat jen na lokalce).
Je to tak ?
...následně budu pátrat po daších možnostech, které mi znemožňují připojení.

PS: server existuje, databáze existuje (v managment studiu bez problémů vytvářím tabulky i sloupce)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2091
  • Karma: 108
    • Verze Delphi: D2007, XE3, DX10
Re:připojení na databázi
« Odpověď #10 kdy: 20-11-2012, 18:19:35 »
Potřeboval bych od vás základní připojení k MSSQL (jednoduchý kód, nebo správné vyplnění vizuální komponenty)
Nejlépe pro komponentu ZEOS (ale případně si nechám poradit). Mě tam píše, že servr neexistuje, nebo byl odepřed přístup.
Připojení a práce s MySQL je bez problémů, ale MSSQL vidím porvé v životě a bohužel se mu nemůžu vyhnout
Delphi 7
MSSQL 2008
Predpokladam, ze sem jsi se dival: http://www.connectionstrings.com/

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1955
  • Karma: 81
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:připojení na databázi
« Odpověď #11 kdy: 20-11-2012, 21:21:21 »
Co teda pouzivas za komponenty?

Pokud ADO, tak jak pise pf1957 se kukni na to ConnectionString. Nebo jinak: vrzni TAdoConnection na formular.
Pravym tlacitkem na komponentu - Edit Connection String. V Dialogu Build.
Otevre se ti wizard a tam v zalozce Zprostredkovatel vyber "MS OLE DB Provider for SQL Server" a dej dalsi.
Zde se vybere server, typ prihlasovani (windows, nebo sql server / viz. jak ti nekdo radil mixed mode na SQL Serveru). Tlacitkem Testovat pripojeni to proveris.
Pokud OK, tak to zavri a v property komponenty se ti objevil ConnectionString.
Toto by ti melo stacit v tom nejhorsim pripade (pokud je vypnuta property LoginPrompt).
Podle toho zda jsi v tom wizardu nastavil ukladat heslo nebo ne, muzes pouzit LoginPrompt nebo heslo strkat do ConnectionStringu.

Já connection string generuji
Embarcadero MVP - Czech republic

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2091
  • Karma: 108
    • Verze Delphi: D2007, XE3, DX10
Re:připojení na databázi
« Odpověď #12 kdy: 20-11-2012, 22:27:08 »
Tusim psal, ze to chce pro ZEOS. S temi jsem se pred lety pred unicodifikaci Delphi pripojoval na MySQL a PostgreSQL a ted jsem si vzpomel, ze tenkrat byl problem s tim, ze ZEOS pouzival nejakou zastaralou DLL, kterou M$ prestal od verze MSSQL 2008 podporovat. Uz si to moc nepamatuju, nicmene zde v archivu je muj prispevek http://forum.delphi.cz/index.php/topic,11634.msg68402.html#msg68402.

Ale jak je to se soucasnou verzi ZEOS netusim.
« Poslední změna: 20-11-2012, 22:33:03 od pf1957 »

rustymattock

  • Host
Re:připojení na databázi
« Odpověď #13 kdy: 20-11-2012, 23:36:30 »
Děkuji kluci. Věnovali jste mi víc času, než jsem původně očekával.To ADO mě nakoplo. Přes něj mi to funguje.
ZEOS jsem si oblíbil, ale v podstatě mi ADO na první pohled přijde synatxí stejné. Přes zeos se bohužel pořád nepřipojím (asi bych potřeboval stejný navod jako na ADO :-D )
Je snad na použití ADO něco špatně, něco kde nevyhovuje ??
Já totiž s tim nemám žádnou zkušenost.

Aplikace bude spravovat 1 databázi, cca 3-15 tabulek (většina do 10 sloupců, některé kolem 30 sloupců), většina tabulek od 100-500 záznamů a přistupovat k ní bude 2-10 klientů.
Čili ne moc velké sousto.
Nepříjemnost je akorát nutný, docela častý  refresh, kůli synchronizaci zadaných dat mezi klienty.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2091
  • Karma: 108
    • Verze Delphi: D2007, XE3, DX10
Re:připojení na databázi
« Odpověď #14 kdy: 21-11-2012, 08:24:31 »
Je snad na použití ADO něco špatně, něco kde nevyhovuje ??
IMHO je ADO pro MSSQL primarni volbou a pro beznou praci, kdy apllikace pracuje jen s jednim MSSQL serverem jsme s tim nemeli problemy.

Ovsem narazili jsme na pripad, ze se napr. z triggeru jedne DB lezlo do jine MSSQL databaze na jinem serveru a tam byly chyby, u kterych mela tehdejsi verze ADO problemy s reportovanim chyb a atomicitou transakci. Snazil jsem se to tenkrat resit na foru http://forum.delphi.cz/index.php/topic,11613.15.html, jeste tam psal podobnou zkusenost Jirka Foldyna, taky u transakci pres linkovane servery.

Ale s jednim serverem by to melo byt v pohode.

rustymattock

  • Host
Re:připojení na databázi
« Odpověď #15 kdy: 21-11-2012, 13:20:26 »
Citace
IMHO je ADO pro MSSQL primarni volbou a pro beznou praci, kdy apllikace pracuje jen s jednim MSSQL serverem jsme s tim nemeli problemy.

v tom případě považuji problém za uzavřený a ještě jednou všem děkuji

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: