Создание таблицы через SQL
Подскажите, пожалуйста, как создать таблицу с полем Double у которого число десятичных знаков можно указать явно (через SQL)
У меня это выглидит так:
sql = "CREATE TABLE tab1 (Код Long, Курс Currency, Сумма DOUBLE );"
cnn.Execute sql
Все хорошо, да только поля КУРС и СУММА ,по умолчанию, имеют число десятичных знаков "Авто". А мне надо это явно задать.
Подскажите, что еще надо дописать в эту SQL-евскую строку.
Спасибо, всем кто откликнется но зов помощи!
Уважаемые знатоки access'а и SQL!
Подскажите, пожалуйста, как создать таблицу с полем Double у которого число десятичных знаков можно указать явно (через SQL)
У меня это выглидит так:
sql = "CREATE TABLE tab1 (Код Long, Курс Currency, Сумма DOUBLE );"
cnn.Execute sql
Все хорошо, да только поля КУРС и СУММА ,по умолчанию, имеют число десятичных знаков "Авто". А мне надо это явно задать.
Подскажите, что еще надо дописать в эту SQL-евскую строку.
Спасибо, всем кто откликнется но зов помощи!
Судя по всему ты пишешь под Access,... потому что свойство поля - число десятичных знаков является доп. свойством (или как говорят на языке ADO являются динамическими свойствами). Поэтому в универсальном языке SQL (пусть даже и в спец. версии SQL под Access) не предусмотрено указание таких тонкостей.
Если очень надо, то для того чтобы добраться до этих свойств надо использовать ADO, который дин. образом формирует доступные свойства OLE DB провайдера и позволяет к ним обращаться.
Например, достаточно известный пример, это добавления к полю своих пояснений (показывается справа от поля в конструкторе), это дин. свойство Description.
P.S. Приятно видеть старых знакомых :) книжку смогла достать?
Судя по всему ты пишешь под Access,... потому что свойство поля - число десятичных знаков является доп. свойством (или как говорят на языке ADO являются динамическими свойствами). Поэтому в универсальном языке SQL (пусть даже и в спец. версии SQL под Access) не предусмотрено указание таких тонкостей.
Если очень надо, то для того чтобы добраться до этих свойств надо использовать ADO, который дин. образом формирует доступные свойства OLE DB провайдера и позволяет к ним обращаться.
Например, достаточно известный пример, это добавления к полю своих пояснений (показывается справа от поля в конструкторе), это дин. свойство Description.
P.S. Приятно видеть старых знакомых :) книжку смогла достать?
Извиняюсь, за свой дурацкий вопрос. До меня дошло (правда уже после отправки сообщения), что это Access-овский параметр а не SQL.
P.s. Книжку купила!!! Она мне очень помогла. Mercy за совет.
Правда, остался еще один вопросик (наверное такой же дурацкий). Если позволите, я его задам.
Как создать MDE файл? У меня почему-то данный пункт меню не активен (Access вроде бы устанавливала по максимуму).
А вообще, ОГРОМНОЕ спасибо за помощь.
Черт, не получилось с первого раза.
Извиняюсь, за свой дурацкий вопрос. До меня дошло (правда уже после отправки сообщения), что это Access-овский параметр а не SQL.
P.s. Книжку купила!!! Она мне очень помогла. Mercy за совет.
Правда, остался еще один вопросик (наверное такой же дурацкий). Если позволите, я его задам.
Как создать MDE файл? У меня почему-то данный пункт меню не активен (Access вроде бы устанавливала по максимуму).
А вообще, ОГРОМНОЕ спасибо за помощь.
Сервис/Служебные программы/Создать MDE-файл
Сложней всего найти как сохранить свою базу в формате mda - надстройка Access. Ответ - никак, этого пункта в меню нет, убрали за ненадобностью, чтобы Access считал твою mdb базу надстройкой, достаточно сменить у базы mdb расширение на mda
Весело да :) Если заинтересуют особенности создания mda, пиши, я сам с ними недавно разбирался.
Оказалось, что моя база другой версии, поэтому менюшка была не доступна. Конвертнула, меню доступно, но все равно не создается. Почему? (пишет Acces was unable to create MDE, а почему не понятно. Может из-за того, что у меня в старт апе прописана функция, хотя вряд ли) Попробую еще поковыряться, но если будут идеи, напишите мне пожалуйста.
p.s. А про MDA обязательно посмотрю и если что ....
Сначала хочу разобраться с MDE.
Оказалось, что моя база другой версии, поэтому менюшка была не доступна. Конвертнула, меню доступно, но все равно не создается. Почему? (пишет Acces was unable to create MDE, а почему не понятно. Может из-за того, что у меня в старт апе прописана функция, хотя вряд ли) Попробую еще поковыряться, но если будут идеи, напишите мне пожалуйста.
p.s. А про MDA обязательно посмотрю и если что ....
Возникающие ошибки при создании mde файла достаточно известная проблема, возникает она из-за того что в базе изначально уже есть какие-то ошибки.
Да, да, именно есть. Просто когда мы запускаем базу на выполнение, то она компиллирует только те модули которые необходимы для работы именно сейчас базы и которые не имеют значка о том что модуль уже откомпиллирован. Может сложится такая ситуция например, что у модуля юудет стоять статус что он откомпиллирован и при этом в нем в одной из функции есть ошибка, а так как он имеет статус откомпилл. модуля, то Access не будет его еще раз компиллировать при вызове меню Debug из редактора. Эти моменты хорошо описаны у Гетца в первом томе -
Глава 13 Оптимизация приложения, Пункт: Оптимизация и компиляция модулей VBA.
Так вот, когда ты запускаешь сохранение в mde формат, то Access принудительно снимает флажки о компиляции и компилярует весь код базы заново, с чистого листа как говорится.
Если ты хочешь обнаружить ошибки в своей базе, то необходимо сбросить флажки о компиляции у всех модулей, это можно сделать несколькими способами (у Гетца есть про ключ Decompl...), кроме этого некоторые придерживаются другого варианта, считающегося более безопасным - это импорт всех объектов в новую пустую базу и последующая компиляция. Этот метод имеет несколько преймуществ о которых полезно почитать: блин, ща немогу найти, hiprog.ru еле ползает, но там была и статья и модуль, который все автоматом делал