Вопрос № 94938: Уважаемые эксперты подскажите пожалуйста как подключить БД Access через SQL есть код:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select '+ComboBox1.Text+
' basa.db '+'Order by '+ComboBox2.Text);
Query1.Open;
что нужно...Вопрос № 94941: Здравствуйте.
База firebird. Случайно запустил запрос на обновление, который привел к рекурсии тригеров и в базу неограниченно начали добавляться записи. Пока я сообразил что к чему бвзв распухла до полу гига. Принудительно остановил сервер. Тепе...
Вопрос № 94.938
Уважаемые эксперты подскажите пожалуйста как подключить БД Access через SQL есть код:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select '+ComboBox1.Text+
' basa.db '+'Order by '+ComboBox2.Text);
Query1.Open;
что нужно дописать или изменить что бы это работало с Access.
Спасибо за помощь буду рад любым ответам.
Отвечает: Shveps
Здравствуйте, Молостов Дмитрий Викторович!
А не лучше ли использовать ADO ? В частности, TADOQuery. Там, в подключении ConnectionString можно указать путь до вашего файла, провайдера, и многое другое.
И где у вас предикат FROM ? в ('Select '+ComboBox1.Text+
' basa.db '+'Order by '+ComboBox2.Text);. Наверно должно быть так:
Query1.SQL.Add('Select '+ComboBox1.Text+ ' FROM '+
' basa.db '+'Order by '+ComboBox2.Text);
Query1.Open;
Но Query должен знать ещё местоположение файла basa.db. И ещё, это ведь файл, а не таблица ? Если вы правильно укажете путь к этому файлу, то там должны быть видны таблицы из этого файла. Этот пост я писал по памяти и проверять в данном случае у меня негде, поэтому могу в некоторых местах ошибиться.
--------- Пиво ф топку !!! Водку Тоже !!!
Ответ отправил: Shveps (статус: 3-ий класс)
Ответ отправлен: 12.07.2007, 20:22
Отвечает: Виктор Пырлик
Здравствуйте, Молостов Дмитрий Викторович!
Для этого надо использовать компоненты с вкладки ADO
1. Добавить на форму компонент ADOConnection
2. Выбрать свойство ConnectionString
3. Выбрать, если не выбрано Use Connection String и нажать кнопку Build
4. В появившемся окне выбрать постащика данных – Microsift Jet 4/0 OLE DB Provider и нажать «далее»
5. Выбрать файл базы данных Access (расширение *.mdb)
6. Установить «пустой пароль» если его нет и «сохранить пароль»
7. Закрыть окно «ок» и свойство LoginPromt у ADOConnection установить в false
1. Перенести с той же вкладки компонент ADOQuery
2. можете в свойстве SQL этого компонента записать сразу SQL запрос, или, как написано у вас – реализовать программно. В этом случае, ваш код будет выглядеть так:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(
'Select '
+ComboBox1.Text
+' FROM <ВАША ТАБЛИЦА> Order by'
+ComboBox2.Text
);
ADOQuery1.Open;
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: 8-ой класс)
Ответ отправлен: 12.07.2007, 21:15
Вопрос № 94.941
Здравствуйте.
База firebird. Случайно запустил запрос на обновление, который привел к рекурсии тригеров и в базу неограниченно начали добавляться записи. Пока я сообразил что к чему бвзв распухла до полу гига. Принудительно остановил сервер. Теперь я не могу ни сделать бэкап/ресторе (я понимаю что бэкап следовало сделать до сиих действий, но...), ни удалить из таблицы все эти набежавшие данные. Хотя пока не трогаешь эту тадлицу другие данные вроде видны.
Есть советы?
Отправлен: 12.07.2007, 18:47
Вопрос задал: Sandy (статус: 8-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Архангельский Андрей Германович
Здравствуйте, Sandy!
Я одновременно с созданием БД, которая сразу разрабатывается в скриптах, создаю процедуру сохранения содержимого таблиц в SQL-скриптах.
Попробуйте выдернуть данные из других таблиц в SQL-скрипт, а потом можно попробовать разобраться с поломанной таблицы
--------- Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 12.07.2007, 19:26 Оценка за ответ: 5 Комментарий оценки: Спасибо. Так я и поступлю. На выходные все же попробую восстановление запустить ради интереса.
Отвечает: Shveps
Здравствуйте, Sandy
Может пока временно сделать Drop :) триггеру. А потом пвтаться удалять данные по необходимым признакам. Кстати, если вы заподозрите при написании триггера, что возможно будет рекурсия, то проверяйте необходимое поле на UPDATE( <поле>) и не начинайте выполнение дальнейшего кода. По крайней мере в MSSQL это UPDATE.
--------- Пиво ф топку !!! Водку Тоже !!!
Ответ отправил: Shveps (статус: 3-ий класс)
Ответ отправлен: 12.07.2007, 20:28 Оценка за ответ: 3 Комментарий оценки: Что делать, что бы этого не происходило известно многоим, и они все равно это делают. А проблема восстановления данных осталась.