Error connecting Robot Framework to MS SQL Server database - database

I am somewhat experienced with Robot Framework, but new to the idea of connecting it to databases. I am trying to create a basic database test in my organization using Robot Framework in the PyCharm IDE. I've written the test using pymssql. It gives an unusual error message when it fails. I've read that I might need to install FreeTDS to do this, but I would prefer not to if I don't absolutely have to. I have seen several answers to this kind of question from Python developers, but I've not seen any who are using Robot Framework specifically.
Versions:
PyCharm 2020.1
Python 3.8.
Pymssql version 2.1.5.
Here is my code and the error messages I am getting.
*** Settings ***
Documentation DB Suite
Library Zoomba.GUILibrary
Library DatabaseLibrary
Resource ../../Pages/xxx/resource.robot
*** Variables ***
${DBName} DBxxx
${DBUser} USER xxx
${DBPass} PASS xxx
${DBHost} localhost
${DBPort} 1433
*** Test Cases ***
TC 001 Database Check
Connect To Database pymssql ${DBName} ${DBUser} ${DBPass} ${DBHost} ${DBPort}
${output}= Execute SQL String select * from dbo.xxx;
Log To Console ${output}
Disconnect From Database
And here is the error message:
OperationalError: (20009, b'DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (localhost)\nNet-Lib error during Unknown error (10061)\nDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (localhost)\nNet-Lib error during Unknown error (10061)\n')
I have read elsewhere that this error means that my Pymssql just can't find the server, but I've seen Pymssql not throw these errors before in other tutorials. It just connects right away. Anybody got any ideas on this one? I'd really appreciate the help.

Related

Getting an error message from a sql server driver in my symfony project

I have tried to install the ODBC driver 18 for SQL Server in my symfony project. I am getting the following error messages. I wanted to ask if anyone could knows the solution for these.
An exception occurred in the driver: SQLSTATE[08001]: [Microsoft][ODBC
Driver 18 for SQL Server]SSL Provider: [error:16000069:STORE
routines::unregistered scheme:scheme=file][error:80000002:system
library::No such file or direc tory:calling
stat(/usr/local/etc/openssl#3/certs)][error:16000069:STORE
routines::unregistered scheme:scheme=file]
Environment details:
symfony version: 5.4.16
php8.1
Homebrew 3.6.16
apache 2.4.54
#AlwaysLearning's answer did help me.From the article linked, I checked the openssl#3 folder and I did see there was a cert.pem file. I then created a certs directory and copied the cert.pem file into that directory. That got of rid of my error message.
I did encounter an additional issue where I needed to add TrustServerCertificate parameter to the end of my connection string that is used to connect to the SQL server.
;TrustServerCertificate=1

Error communicating between BxlServer and client

I have been trying to upgrade SQL server 2017 to run Python 3.7. We have installed CU28 and the product version is 14.0.3430.2 which includes the C:\Program Files\Microsoft SQL Server\MSSQL14.INSTANCENAME\PYTHON_SERVICES.3.7.
I have made sure all permissions are granted to the INSTANCENAME directory and pythonlauncher.config working directory is pointing to C:\Program Files\Microsoft SQL Server\MSSQL14.INSTANCENAME\MSSQL\ExtensibilityData and launchpad service account has permissions to this directory.
I have done all this as an upgrade twice and got various errors, and a clean install. The error I am getting is
Msg 39004, Level 16, State 20, Line 0
A 'Python' script error occurred during execution of 'sp_execute_external_script' with HRESULT 0x80004004.
Msg 39019, Level 16, State 2, Line 0
An external script error occurred:
Invalid BXL stream
error while running BxlServer: caught exception: Error communicating between BxlServer and client: 0x000000e8
HRESULT 0x000000e8 looks like INVALID_CANCEL_OF_FILE_OPEN
HRESULT 0x80004004 looks like E_ABORT
So no real clues what is wrong here. pythonlauncher.log does show the error;
[Error] Process::TryTerminate failed with error code: 5
Session 0E93E9D1-07A7-448A-8B1A-FCA5263A5F53 TryTerminate(1067) failed with 5
Error code 5 is ERROR_ACCESS_DENIED
Also got this warning
[Warning] StaleDirectoryCleaner() failed to delete C:\Program Files\Microsoft SQL Server\MSSQL14.INSTANCENAME\MSSQL\ExtensibilityData\FAMSQL17UAT01\8B97815A-E9EA-4FA0-98F3-0440D4180522 after 5 retries
So all up this looks there are still permission issues. Extremely frustrating as there is next to no help on this. Any help would be greatly appreciated.
UPDATE:
After another clean install - first checked Python 3.5.2 worked and it did. Upgraded to 3.7, and again got the same issue. A bit more digging around I find this...
The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/SERVERNAME.domain_name.com:INSTANCENAME ]
Login failed for user 'DOMAIN\SERVERNAME$'. Reason: Could not find a login matching the name provided.
We have a service account that is not part of the domain which is NT Service\MSSQL$INSTANCENAME. Why on this implementation expecting a windows authenticated user the same name as the server??? How can I go about remedy this?
I think what has happened is that MS have left debug code in their production release.
FURTHER UPDATE:
In the event log we are seeing
Faulting application:Python.exe: 3.7.1150.1013 Faulting module name:
pylink.pyd Faulting module path:c:\Program Files\Microsoft SQL
Server\MSSQL14.INSTANCENAME\PYTHON_SERVICES.3.7\lib\site-packages\revoscalepy\rxLibs\pylink.pyd
Microsoft have confirmed that this is a bug. Their work around is below.
It's CU27 and CU28 that 3.7 is broken in - so you could use CU26 and still use Python 3.7. That version started at CU22... so CU22-26 work fine.
Or - it's only the pylink.pyd that is broken - you can simply grab the pylink.pyd from a CU22-26 installation for Python 3.7, and swap it into your CU27/CU28 files. This workaround will work now, and will also not cause any issues going forward once the fix does come. That is, on your next update, it shouldn't interfere and it should all go smoothly.

Protocol error when executing cpp-driver datastax

I am currently workinig on datastax cpp-driver in C and was working around some examples when I came across a very trivial problem. While trying to execute the Basic Authentication Script here, I found this error showing up and the code execution getting stuck.
The Error:
1587040775.210 [ERROR] (cluster_connector.cpp:192:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Unable to establish a control connection to host 127.0.0.3 because of the following error: Underlying connection error: Connect error 'connection refused'
1587040775.210 [ERROR] (cluster_connector.cpp:192:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Unable to establish a control connection to host 127.0.0.2 because of the following error: Underlying connection error: Connect error 'connection refused'
1587040775.211 [ERROR] (cluster_connector.cpp:192:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Unable to establish a control connection to host 127.0.0.1 because of the following error: Underlying connection error: Received error response 'Invalid or unsupported protocol version (66); supported versions are (3/v3, 4/v4, 5/v5-beta)' (0x0200000A)
1587040775.211 [WARN] (cluster_connector.cpp:289:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Host 127.0.0.1 does not support protocol version DSEv2. Trying protocol version DSEv1...
1587040775.212 [ERROR] (cluster_connector.cpp:192:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Unable to establish a control connection to host 127.0.0.1 because of the following error: Underlying connection error: Received error response 'Invalid or unsupported protocol version (65); supported versions are (3/v3, 4/v4, 5/v5-beta)' (0x0200000A)
1587040775.212 [WARN] (cluster_connector.cpp:289:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Host 127.0.0.1 does not support protocol version DSEv1. Trying protocol version v4...
What could be these protocols that are not supported by my machine? Also, after it comes to the last warning, which is trying protocol v4 it gets stuck.
I'm using Casssandra 3.10+, Cpp-driver 2.13.
Anybody with a workaround or a solution would be of much help. Thanks in advance
I've looked around a bunch to find some documentation to back this up but I can't find any, so this part is conjecture. It appears that server version 3 uses protocol V3. It looks like server version 4 (still in beta) will use protocol V4. I suspect V5 is a future iteration that is being planned and still not written in stone yet (and why it's tagged as beta in the warning).
This part isn't conjecture.
If you add this to your code before you connect to the cluster:
cass_cluster_set_protocol_version(cluster, CASS_PROTOCOL_VERSION_V3);
All the warnings about downgrading to different protocols should go away.

How to configure pgadmin4 (PostgreSQL)

When I finished installation postgresql-10.5 and ran pgadmin4 (that came installed with postgresql) I get a configuration error that says:
An error occurred initializing the application server:
Failed to launch application server, server thread existing
It then asks me to input a python path and an application path.
Can anybody help me and and advise what to do to run pgadmin4. I tried find problem solution, but nothing helped me(

Beanstalkd Source Error

I am trying to queue a task using beanstalkd plugin in cakephp. However,
I am getting this error:
BeanstalkdSource - Could not connect. Error given was '111: Connection refused'. in [/var/www/*/app/plugins/queue/models/datasources/beanstalkd_source.php, line 72]
Can you tell me how can I solve this.
Have you installed Beanstalkd and set it running? If you can connect to it OK (run telnet 127.0.0.1 11300 from the command line, and type stats to confirm), then post the connection details, there may be an issue with the PHP side of the connection.

Resources