How does Adobe read ODBC provider type? | Adobe Higher Education
Skip to main content
Level 2
October 3, 2019
해결됨

How does Adobe read ODBC provider type?

  • October 3, 2019
  • 4 답변들
  • 1871 조회

Hi,

We are currently creating custom ODBC driver and having a hard time figuring out how exactly Adobe recognizes the provider/dbtype?

We need our custom driver to be recognized as hive.

I found this .js application.getDBMSType('nms:extAccount:'+'hadoop') but couldn't find how getDBMSType actually reads the db type, anybody has any better insights here?

Here are some sample outputs from the function getDBMSType:

When using ClouderaODBC hive driver --> output = 'hive'

When using Teradata driver --> output = 'teradata'

My initial guess is that it would read something from the driver itself but cannot figure out what exactly?

Regards,

Ari

이 주제는 답변이 닫혔습니다.
최고의 답변: appuputti

Hi Jon,

Appreciate your effort on this.

We have solved this. The parameter comes from the driver library and it is DSI_CONN_DBMS_NAME. This parameter defines the vendor for ODBC connection in Adobe.

Thanks,

Ari

4 답변

Jonathon_wodnicki
Community Advisor
Community Advisor
October 3, 2019

Hi,

It's the lowercased value of the extAccount's @provider field.

Thanks,

-Jon

appuputti작성자
Level 2
October 3, 2019

Hi Jon,

Thanks for the reply. In this case when it is ODBC setup the @provider='ODBC' so that doesn't seem to be the case.

It does strongly look like it reads something from the driver in use but cannot find what.

Was hoping that somebody knows what getDBMSType does as this seems to be actually Java library somewhere but cannot find it.

Thanks,

Ari

Jonathon_wodnicki
Community Advisor
Community Advisor
October 10, 2019

Hi,

I got that from fiddling with the extAccount and checking response values, though that wouldn't apply to provider ODBC.

In which, looking at ODBC spec the function's likely sourcing info from the SQLGetInfo() command, specifically arg SQL_SERVER_NAME.

The output you're seeing could be from a hardcoded map in the nlserver binary that replaces driver responses with internal values to homogenize with the other provider types.

Java libs aren't used for db connection handling.

Thanks,

-Jon

appuputti작성자답변
Level 2
October 11, 2019

Hi Jon,

Appreciate your effort on this.

We have solved this. The parameter comes from the driver library and it is DSI_CONN_DBMS_NAME. This parameter defines the vendor for ODBC connection in Adobe.

Thanks,

Ari