Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[PS/Postgres] Providerprobleem

Pagina: 1
Acties:

Onderwerpen


  • YellowOnline
  • Registratie: januari 2005
  • Laatst online: 10-12-2019

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Ik probeer al dagen een verbinding tot stand te brengen met een postgreSQL DB maar slaag er maar niet in. Alvorens ik huilend door het raam van de tiende verdieping spring toch even hier langskomen. Probleem in een notendop: ik ben echt niet vertrouwd genoeg met databases :'(
PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[system.reflection.assembly]::LoadWithPartialName("System.Data")

$SqlProvider  = "PostgreSQL30 Unicode"
$SqlServer    = "netdisco.blablabla.com"
$SqlDBName    = "netdisco"
$SqlPort      = 5432
$SqlTable    = "node_nbt"
$SqlColumn  = "nbname"
$SqlSelection = "ip,domain,time_last"
$SqlQuery     = "SELECT $SqlSelection FROM $SqlTable WHERE $SqlColumn = '$HostName'"
$SqlUserName  = "blabla"
$SqlPassword  = "blabla"


$SqlConnection = New-Object System.Data.OleDB.OleDBConnection
$SqlConnection.ConnectionString = "Provider=$SqlProvider;Data Source=$SqlServer;Location=$SqlDBName;UID=$SqlUserName;Password=SqlPassword;Timeout=1000;"

$SqlConnection.Open()

Het loopt ergens fout met die Provider. Ik heb psqlodbc geïnstalleerd en de driver is zichtbaar bij ODBC in Windows en werkt; met een GUI zoals navicat kan ik aan alles aan; maar in mijn script loop ik altijd maar aan tegen volgende probleem:
code:
1
2
3
4
5
6
PS C:\ $SqlConnection.Open()
Exception calling "Open" with "0" argument(s): "The 'PostgreSQL30 Unicode' provider is not registered on the local machine."
At line:1 char:20
+ $SqlConnection.Open <<<< ()
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

Ik heb alle mogelijke namen van die driver al gegeven: PostgreSQL30, PostgreSQL, PostgreSQL.1, PostgreSQL ANSI, PostgreSQL Unicode,... en de error blijft dezelfde.

Google helpt niet echt: de meeste mensen met dit probleem hebben gewoon geen driver geïnstalleerd (wat hier wél het geval is). De combinatie met PowerShell geeft zelfs géén hits. Voor MS SQL vind ik alles wat ik wil, maar in het combineren van PostgreSQL met PowerShell ben ik blijkbaar een pionier :+ Nu: ik vermoed dat de oplossing voor de hand ligt, maar dan wel voor iemand die dagelijks met DBs werkt. Wat bij mij niet het geval is: dit is uitzonderlijk dat mijn scripts beroep moeten doen op een externe DB (in casu: om via netdisco op basis van hostname "IP", "domain" en "last seen" terug te krijgen.

PS. Dit staat in PRG ipv. in WOS omdat de dotnetters vooral hier rondlopen.

Intel i7 8700K | G.Skill SniperX 3200MHz 2x8GB | MSI Z370 PC Pro | Gainward GTX 1070 | Fractal Design Define XL | LG BH10LS30 | Cherry MX Red | Logitech G500 | Thermaltake Smart M850W | Logitech X-530 | LG 34UM58 | Samsung EVO 500GB | 2x Seagate 4TB


  • _js_
  • Registratie: oktober 2002
  • Laatst online: 20-02 08:45
Je schrijft dat je een ODBC driver hebt geïnstalleerd, maar in je script probeer je verbinding te maken via OleDB. Ik denk dat daar iets niet klopt.

  • YellowOnline
  • Registratie: januari 2005
  • Laatst online: 10-12-2019

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
quote:
_js_ schreef op donderdag 30 september 2010 @ 16:57:
Je schrijft dat je een ODBC driver hebt geïnstalleerd, maar in je script probeer je verbinding te maken via OleDB. Ik denk dat daar iets niet klopt.
Oeps, da's nog een restant van al mijn pogingen om me te verbinden.

Intel i7 8700K | G.Skill SniperX 3200MHz 2x8GB | MSI Z370 PC Pro | Gainward GTX 1070 | Fractal Design Define XL | LG BH10LS30 | Cherry MX Red | Logitech G500 | Thermaltake Smart M850W | Logitech X-530 | LG 34UM58 | Samsung EVO 500GB | 2x Seagate 4TB


  • YellowOnline
  • Registratie: januari 2005
  • Laatst online: 10-12-2019

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Bump met de oplossing. Ter referentie voor wie ooit een gelijkaardig probleem heeft, want ooit moeten alle win sysadmins hier toch PS leren :p
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$HostName = "blablabla" #een of andere hostname
[system.reflection.assembly]::LoadWithPartialName("System.Data")
$SqlProvider = "{PostgreSQL Unicode}"
$SqlServer = "netdisco.blablabla.com"
$SqlDBName = "netdisco"
$SqlPort = 5432
$SqlTable = "node_nbt"
$SqlColumn = "nbname"
$SqlSelection = "ip,domain,time_last"
$SqlQuery = "SELECT $SqlSelection FROM $SqlTable WHERE $SqlColumn = '$HostName'"
$SqlUserName = "blabla"
$SqlPassword = "blabla"
$SqlConnectionString ="Driver=$SqlProvider;Server=$SqlServer;Port=$SqlPort;Database=$SqlDBName;UID=$SqlUserName;PWD=$SqlPassword;"
$SqlConnection = New-Object System.Data.Odbc.OdbcConnection
$SqlConnection.ConnectionString = $SqlConnectionString
$SqlCommand = $SqlConnection.CreateCommand()
$SqlCommand.Connection.Open()
$SqlCommand.CommandText = $SqlQuery
$SqlAdapter = New-Object System.Data.Odbc.OdbcDataAdapter $SqlCommand
$SqlDataset = New-Object System.Data.DataSet
$SqlAdapter.Fill($SqlDataSet)
$SqlCommand.Connection.Close()
$SqlDataSet.Tables[0] | ForEach-Object  {$hostIP = $_.ip; $hostDomain = $_.domain; $hostLastSeen = $_.time_last; }
Return $hostIP
Return $hostDomain
Return $hostLastSeen

Ooit heb ik tijd om een PS lexer te maken ... ooit...

Intel i7 8700K | G.Skill SniperX 3200MHz 2x8GB | MSI Z370 PC Pro | Gainward GTX 1070 | Fractal Design Define XL | LG BH10LS30 | Cherry MX Red | Logitech G500 | Thermaltake Smart M850W | Logitech X-530 | LG 34UM58 | Samsung EVO 500GB | 2x Seagate 4TB



Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True