How to define a default dataset in ODBC driver - ms-access

I have a connection that connects bigquery with MS Access.
I could link bigquery object's and view them in MS Access. But when I try to create a query by joining two tables, it shows an error:
ODBC-Call Failed
[simba][Bigquery][70] invalid query : Tablename 'tablename' missing dataset while no default dataset is specified in the request.[#70]
Below is the use-case ;-
I have got 2 linked table:
Table1
Table2
When I create a query via QueryDesign on table1 and on execution of the query I can see that data is fetched from bigquery and shown up in MS access.
Similarly when I create an other query on table2, I could see the results.
But when I create a query via QueryDesing by joining table1 and table2, during execution of the join query, MS access throws the error below:
ODBC-Call Failed
[simba][Bigquery][70] invalid query : Tablename 'tablename' missing dataset while no default dataset is specified in the request.[#70]
Can someone help to configure the default dataset in ODBC?

Analyzing the issue, You will have 2 options:
Set the dataset on the odbc driver configuration:
Follow the tutorial on this link to find the ODBC driver configurations.
Set the default dataset name on this step, editing the user DSN:
If the probelm persists, then it will indicate an issue on the odbc simba connector.
Open a issue case on issue tracker, so they can check you log details and provide a more appropriated support.

Related

Linked Server - Can see tables but not columns

I am trying to query a linked server, when I expand object explorer in SSMS, I can see all db's on the server and all tables within the respective db's but cannot expand to see the columns. I also cannot run any queries with the following errors:
1 - If I right click on the table name and click script table as - select to - new query window, I get the following error
[LinkedServerName].[singhm]..[testtable] contains no columns that can be selected or the current user does not have permissions on that object.
2 - If I run the an openquery statement as follows:
select *
from openquery(LinkedServerName ,'select * from [singhm]..[testtable]')
I get the following error:
Cannot initialize the data source object of OLE DB provider "MSDASQL"
for linked server "LinkedServerName".
For context purposes, My linked server is an ODBC connection to a MySQL db datasource.
I would be grateful for any advice and/or direction regarding this matter.
Many thanks,
Manpaal Singh
I needed to download and install a different odbc provider. I can now query the linked server using the following syntax.
select top 10 * from openquery(MYSQL,'select * from singhm.testtable')

Query to transfer from ODBC

I have a database connection using ODBC.. i want to write a query to transfer all tables and columns to export the data in DOMO..
select* from database ()
Can someone help in a query where i can replace only with the new data?
Assuming the ODBC database connection has been made (using Domo workbench or cloud connector) and the data is present in Domo, you can add a transform (in MySql or Redshift - refer screenshot), in which you can write your query [select * from database].
Once you have finished writing your transform(s), you can 'Add Output Dataset' (see screenshot) to extract the data.Screenshot

Joinning SQL Server table with *.mdb file

I'm trying to joinning SQLServer 2008 R2 tables with msaccess table (*.mdb).
I already tried "OPENDATASOURCE" and "Linked Server", but no one of them is work correctly.
in example, I've got the following message:
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server
"TestLinkServer" returned message "Cannot open database ''. It may
not be a database that your application recognizes, or the file may be
corrupt.".
the other error message:
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "MDBTest"
returned message "The Microsoft Jet database engine cannot open the
file '\10.55.56.34\Shared Folder\LBUS.mdb'. It is already opened
exclusively by another user, or you need permission to view its
data.".
and many more :D
can anyone give the working tutorial?
thanks in advance.. :)
The easiest way is to do the join inside ms-access.
Set up a table link in your access database that references the sql-server table you want to join.
Then build a query in access that joins that table with one or more tables in the access database.
If you want to join more than one sql-server table, first create a view in sql-server that combines all the relevant tables. Then set up your table link to reference the view.
If, for some reason, you must do the join inside SQL server, you will have to use a different technique, or use the table link feature to "push" data from the access table to a (previously defined) sql server table. Then, it's just an ordinary join.

Error when trying to update via linked server (mssql -> mysql) - Select works

I am having an issue when trying to do an update via a linked server. Error is the following:
OLE DB provider "MSDASQL" for linked server "**LINKED_SERVER_NAME" returned message "Data provider or other service returned an E_FAIL status.".
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "LINKED_SERVER_NAME".
I have no problem selecting data but any time I try to do an update it fails. My update code:
Update [LINKED_SERVER_NAME]...[Table_Name]
SET post_content = 'alert'
where ID = 5061
This is my select statement which DOES work:
select top 100 * from [LINKED_SERVER_NAME]...[Table_Name] where ID = 5061
I am using:
Microsoft SQL Server Management Studio 2008
Trying to connect from MS SQL -> MySQL via ODBC Connector 5.2 (5.1
has same issue)
UPDATE
I have tried to use "OPENQUERY" -> this does not work either
OPENQUERY is not new but it is far more reliable when dealing with non-microsoft linked servers.
UPDATE OPENQUERY (LINKED_SERVER_NAME, 'SELECT post_content FROM Table_Name WHERE ID = 5061')
SET post_content = 'alert';
Do not use [ ] square brackets in mysql queries; you can use apostrophe instead.
Check that you have update permissions on the table.
Try running the update directly on a mysql connection. This may be an error not related to linked servers.
Is the mysql table a view? It may not be configured correctly as an updatable view.
MySQL CREATE VIEW Syntax
If this still doesn't solve it, paste your actual openquery code into the question.

SSIS Query Parameters for ADO .NET Source

I am trying to retieve data from a MySQL table and insert into a SQL Server table using ADO .NET connections in SQL Server 2008 SSIS. In my data flow task I have an ADO .NET Source which queries the MySQL table (select all invoices) and an ADO .NET Destination which inserts the data in my SQL Server table. Now, I would like to add a parameter in my data source so that I only select the max(invoiceNumber) retrieved from my SQL Server table. I have performed a similar task using "OLE DB Command" but the problem is that I need to query a MySQL database. Any ideas how I can achieve this?
I found that the only way to use parameter with the ADO.NET Data Source is this workaround:
Go to the Flow Control and selenct the Activity Flow containing your ADO.NET source.
In the properties window you can see the ADO.NET source Sql Command
Go to expression and select the properties: [YOU SOURCE NAME].[SqlCommand] and then edit the expression using variables to simulate parameters
Set Data Access Mode in ADO.NET Source to SQL Command and write the query.
You shoudn't have to add a parameter:
select *
from invoices
where invoiceNumber = (select max(invoiceNumber) from invoices)
The above works in SQL Server. I'm assuming that the same query will work in MySQL