-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ODBC под Windows продолжение... #37
Comments
Тут надо всё разбить на несколько пунктов.
|
Угу. Всё так, описал просто последовательность действий, может пригодиться если кто-то будет гуглить, да и можно бы какую-то документацию сделать, чтоб каждому кто пробует не нужно было на те же грабли наступать каждый раз. Ещё один важный пункт: |
Enum'ы починил. Но с Microsoft Query у меня какая-то беда, такое ощущение, что он куда-то закэшировал себе старую версию драйвера и попытка открыть таблицу с Enum выдаёт сообщение, которого в коде уже нет. Возможно, что у вас что-то похожее. |
Если не секрет, то каким способом ты починил Enum? |
Тогда странно, я использую 2017-11-07,
если в |
По разному пробовали завести линк, выходит ошибка: The OLE DB provider "MSDASQL" for linked server "CLICKHOUSE_TEST" indicates that either the object has no columns or the current user does not have permissions on that object что делать то? |
Пробую добраться до данных в кликхаусе стандартными средствами Windows - через ODBC и Excel.
Похоже что 32 битный Еxcel (офис 2010) требует наличия 32-битного драйвера ODBC на 64-битной системе (Windows 7). При этом если поставить только 32-битный драйвер то настроить DSN из панели управления не получается.
Но это всё вступление (может кому-то и оно пригодится). Теперь к проблемам.
Из экселя пробую вытащить данные. Если использую Unicode драйвер, то Microsoft Query просто умирает. Сообщение об ошибке в журнале событий такое:
Имя сбойного приложения: MSQRY32.EXE, версия: 14.0.7010.1000, отметка времени: 0x511cfec4
Имя сбойного модуля: ODBC32.dll, версия: 6.1.7601.17514, отметка времени 0x4ce7b964
Код исключения: 0xc0000409
Смещение ошибки: 0x00056a09
Идентификатор сбойного процесса: 0x15f4
Время запуска сбойного приложения: 0x01d34d109c72c044
Путь сбойного приложения: C:\Program Files (x86)\Microsoft Office\Office14\MSQRY32.EXE
Путь сбойного модуля: C:\Windows\system32\ODBC32.dll
Код отчета: dcc5f386-b903-11e7-8c07-7824af8aa99d
(не очень полезно наверное, но не знаю что ещё приложить)
С ANSI-драйвером - запускается, но дальше тоже всё не весело:
Таблицы с полями типа Enum не работают - ошибка такая: Can't pase name of type: Enum8('VALID' = 1, 'DELETED' = 2)
Таблицы без Enum - при попытках селектов возвращают исключение DB::Exception: Unknown identifier: table.column, e.what() = DB::Exception
В query_log это выглядит так:
Row 22:
───────
type: 3
event_date: 2017-10-25
event_time: 2017-10-25 21:38:22
query_start_time: 2017-10-25 21:38:22
query_duration_ms: 0
read_rows: 0
read_bytes: 0
written_rows: 0
written_bytes: 0
result_rows: 0
result_bytes: 0
memory_usage: 0
query: SELECT table.сolumn\r\nFROM db.table table
exception: Code: 47, e.displayText() = DB::Exception: Unknown identifier: table.column, e.what() = DB::Exception
stack_trace: 0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x2863bf6]\n1. clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, int)+0x1f) [0x1005e1f]\n2. clickhouse-server(DB::ExpressionAnalyzer::getRequiredColumnsabi:cxx11+0xf3) [0x2bcf9e3]\n3. clickhouse-server(DB::InterpreterSelectQuery::executeFetchColumns()+0x71) [0x27c8301]\n4. clickhouse-server(DB::InterpreterSelectQuery::executeSingleQuery()+0x23) [0x27c60d3]\n5. clickhouse-server(DB::InterpreterSelectQuery::executeWithoutUnion()+0x1a5) [0x27c7c35]\n6. clickhouse-server(DB::InterpreterSelectQuery::execute()+0x22) [0x27c7c82]\n7. clickhouse-server() [0x284db27]\n8. clickhouse-server(DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::function<void (std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)>)+0x1dd) [0x284ec7d]\n9. clickhouse-server(DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLForm&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&)+0x19ff) [0x100e06f]\n10. clickhouse-server(DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&)+0x31c) [0x100fa9c]\n11. clickhouse-server(Poco::Net::HTTPServerConnection::run()+0x2c0) [0x30ba360]\n12. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x30b336f]\n13. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x12b) [0x30b49eb]\n14. clickhouse-server(Poco::PooledThread::run()+0xa7) [0x31c7357]\n15. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x96) [0x31c1ab6]\n16. /lib64/libpthread.so.0(+0x7e25) [0x7f3a1bb99e25]\n17. /lib64/libc.so.6(clone+0x6d) [0x7f3a1946b34d]\n
is_initial_query: 1
user: user
query_id: 55610de4-7f0b-403a-8b2c-067e7546763f
address: \0\0\0\0\0\0\0\0\0\0▒▒W̖▒
port: 26758
initial_user: user
initial_query_id: 55610de4-7f0b-403a-8b2c-067e7546763f
initial_address: \0\0\0\0\0\0\0\0\0\0▒▒W̖▒
initial_port: 26758
interface: 2
os_user:
client_hostname:
client_name:
client_revision: 0
http_method: 2
http_user_agent:
quota_key:
revision: 54236
Похоже это связано с тем что версия сервера относительно старая, ещё без поддержки SELECT table.column. На сервере с новой версией вроде бы работает, но там пока нет данных.
The text was updated successfully, but these errors were encountered: