2015-06-18 2 views
0

Я использую npgsql в небольшом приложении, используемом в библиотеке, в которой я работаю. Первоначально мое приложение (vb.net) использовало sendkeys.send и sendkeys.sendwait для ввода команд psql в cmd. Это работает, но его медленный и неэффективный (уродливый, багги и т. Д.).Использование psql options в npgsql

Обычно я использую опции \ o и \ H в psql, чтобы отправлять результаты моего запроса в выходной файл, отформатированный как HTML, и отображать его в моем приложении.

Мне интересно, может ли npgsql обрабатывать некоторые доступные параметры psql ... в частности, выходной файл и формат вывода (в html).

PSQL страница PostGreSQL documentaiton: http://www.postgresql.org/docs/devel/static/app-psql.html

Как я делаю это сейчас:

SendKeys.Send("SET client_encoding = 'UTF8';" & "{ENTER}") 
    SendKeys.Send("\o htmlout.html" & "{ENTER}") 
    SendKeys.Send("\H" & "{ENTER}") 
    SendKeys.Send("\T bgcolor=""#E4F1E4""" & "{ENTER}")** 
    SendKeys.Send("SELECT * FROM public." & gdxfilebox.Text.Remove(5)) 
    SendKeys.Send("{ENTER}") 
    SendKeys.Send("WHERE gid IN {(}" & gidbox.Text.Trim() & "{)};") 
    SendKeys.SendWait("{ENTER}") 
    SendKeys.SendWait("\q" & "{ENTER}") 
    SendKeys.SendWait("exit" & "{ENTER}") 

Спасибо!

ответ

1

Npgsql - это просто драйвер для взаимодействия с базой данных, HTML-форматирование результатов полностью выходит за рамки (в отличие от psql, которое представляет собой консольное приложение, ориентированное на пользователя). Обратите внимание, что не было бы «универсального» способа форматирования HTML таким образом, чтобы удовлетворить всех.

Однако очень просто прочитать запрос из базы данных и отформатировать результаты в формате HTML, просто использовать API NpgsqlDataReader для чтения столбцов из каждой строки результатов и отформатировать HTML оттуда.