Есть ли способ получить точность ведущего интервала для столбца через DBI в Perl? - PullRequest
0 голосов
/ 07 марта 2012

Мне нужно иметь возможность получить следующие атрибуты столбца в скрипте perl для столбца в таблице ODBC:

  • Тип SQL
  • Точность
  • Масштаб
  • Интервал Ведущая Точность
  • TypeName
  • Независимо от того, подписано оно или нет
  • * 1016 допустимость пустых *
  • Будь то с учетом регистра
  • Будь то авто-уникальный
  • Updatability

Прямо сейчас я использую DBI, и, похоже, я могу получить большую часть этой информации, но я озадачен получением точности, ведущей к интервалу. DBI это разоблачает?

1 Ответ

0 голосов
/ 08 марта 2012

Этот модуль (который я написал) предназначен для атрибутов SQLCol. Произошло то, что MS отказалась от SQLColAttributes и заменила его на SQLColAttribute. Кстати, в модуле есть опечатка, которая должна быть $ sth, а не $ dbh (я только что исправил это). ColAttributes теперь заменяется атрибутами DBI в большинстве случаев, например, PRECISION . Вы не можете передать новые типы SQLColAttribute в SQLColAttributes с помощью DBD :: ODBC, поскольку он знает только о тех, которые ODBC определил для SQLColAttributes, и как ODBC разрешил специфичные для драйвера атрибуты (для которых DBD :: ODBC, возможно, не мог знать тип) его должен перехватить их и выдать сообщение «атрибуты столбца, не поддерживаемые драйвером».

См. SQLColAttribute , в котором перечислены все значения, которые вы можете передать в ColAttribute. Вам придется искать в заголовочных файлах sql * .h значения. Тем не менее, я не вижу интервал, ведущий точность в списке. Я вижу, что SQL_DESC_PRECISION говорит: «Для типов данных SQL_TYPE_TIME, SQL_TYPE_TIMESTAMP и всех типов данных интервала, представляющих интервал времени, его значение является применимой точностью компонента доли секунды». Поэтому я не уверен, что вы имеете в виду под «точностью до интервала».

Какой драйвер ODBC вы используете?

...