|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
D7: БД ADO на MS SQL Server 2000
Сразу прошу прощения за вопрос, который наверняка много раз тут был задан, но крайняя необходимость сподвигла задать его снова. Задача: Написать БД (разработать БД и написать клиента) для отдела кадров. Готовые решения от 1С и т.д. не катят. Не спрашивайте почему. Работать все должно через ADO на MS SQL Server 2000. Собственно проблема в том, что я даже не знаю как к ней подступиться, ибо БД практически не занимался. Избавиться от задания нельзя и писать придется обязательно. Причем надо сделать до середины марта Кому не жалко, если кто писал клиентов на подобной связке ADO+SQL Server скиньте пожалуйста рабочий пример, а то у меня уже вешалки наступают. Я накачал кучу примеров, но как-то все не то. Хотелось бы избавиться от DBGrid'а и пользоваться нормальными визуальными компонентами. HELP ME! Кроме того, не откажусь от помощи людей, которым можно задать вопрос и оперативно получить вразумительный ответ по мылу, аське и т.д. Очень надеюсь на вашу помощь.
|
#2
|
||||
|
||||
Для начала разработай структуру.
Понключение к MS SQL через ADO процедура довольно простая, справишься без проблем. Цитата:
По конкретным вопросам милости просим в аську. |
#3
|
|||
|
|||
пиши мне в АСЮ, я тебе помогу, так как я постоянно работаю с Ms Sql 2000 - 2005 Ado и т.д.
|
#4
|
|||
|
|||
Начинаем вопросы
Итак структура БД создана.
1. В БД есть таблица tdSotr, в которой имеется поле Photo: image. На форме приложения имеется DBImage с кнопкой "загрузить фото". Как сделать так, чтобы можно было загрузить фотку в компонент и записать в базу ну и естественно отображать ее в этом компоненте? Нужно чтобы была возможность сохранять не только BMP, но и JPEG ! 2. Как правильно отображать в DBImage картинку (в плане масштабирования и пропорций) ? 3. Как изменить Z-порядок выбора элементов на форме по нажатию на Tab ? |
#5
|
||||
|
||||
Цитата:
а что ты хочешь использовать на начальной стадии*? Цитата:
Цитата:
Цитата:
|
#6
|
|||
|
|||
Цитата:
DBGrid использую все-таки. Цитата:
Берет. Только когда читает из БД. А как туда грамотно записать эту картинку? |
#7
|
||||
|
||||
Цитата:
Код:
DBImage1.Picture.LoadFromFile('c:\image.bmp'); |
#8
|
||||
|
||||
Запись картинки в БД:
Код:
begin ADOquery1.sql.text:='Insert into tdSotr (Photo) Values (:b)'; //Это добавит новую запись, для существующей запрос немного другой: //ADOquery1.sql.text:='UPDATE tdSotr SET Photo = :b WHERE [тут условие]'; ADOQuery1.parameters.parseSQL(ADOquery1.sql.text, true); ADOQuery1.parameters.parambyname('b').LoadFromFile('c:\1.bmp',ftGraphic); try ADOQuery1.execsql; except ShowMessage('Ошибка при загрузке картинки в базу'); Exit; end; ShowMessage('Картинка загружена'); end; |
#9
|
|||
|
|||
Цитата:
Картинку-то записывает вроде. Только вот если картинка BMP, то все Ok, а если картинка JPEG, то при просмотре в DBImage возникает ошибка типа "Данная информация не является Bitmap'ом" и естественно картинка не отображается. Как все-таки нормально сохранять и отображать именно JPEG? |
#10
|
|||
|
|||
Новые вопросы
Итак новые вопросы возникли:
1. Меня интересует вопрос про репликацию БД на MS SQL Server. Итак имеется несколько компов на которых установлен MS SQL Server 2000 и собственная моя прога. На серваке БД в которой есть таблица tdSotr (содержит список сотрудников отдела конторы). В данной таблице автоинкрементное поле IDSotr. Теперь вопрос: как правильно собрать данные со всех компов на один комп? Естественно чтобы не было проблем с уникальностью IDSotr. 2. Когда нахожусь в дельфе - постоянно сыпятся ошибки EOleException. Если запустить exe'шник, то все Ok - никаких исключений нет. Что это такое? 3. У кого взять не демо EhLib? (чтобы работал без IDE Delphi). p.s. Вообще-то больше всего меня волнует вопрос с сохранением\чтением JPEG в\из БД. |
#11
|
||||
|
||||
Цитата:
|
#12
|
|||
|
|||
Цитата:
Как? Пример можно? Сохранять в базе я понял как. Твой предыдущий код работает. А как загрузить это в TImage? И еще: Есть DBEdit с маской ввода. Если юзер что-то неправильно ввел в этот DBEdit, то при потере фокуса возникает исключение. Как его перехватить? Использовать OnValidate? А как? Примером поделитесь плиз. Сроки идут. |
#13
|
||||
|
||||
Цитата:
Примерно так: Код:
Image1.Pictire.Bitmap.Assign(Table1.FieldByName('Picture').Value) |
#14
|
|||
|
|||
Странный глюк
С картинками разобрался. Только вот глюк какой-то хитрый у меня в программе. Компилю проект на своем компе. Запускаю готовый exe'шник на своем компе - все Ok. Переношу этот exe'шник на другой комп и при загрузке вылетает ошибка "Runtime error 216" и, естественно, приложение не запускается. НО! Если откомпилить проект на этом компе (где экзшник вылетает с ошибкой), то все работает на этом компе нормуль. Что это такое? Использую Delphi 7, компоненты ADO. Кроме стандартных компонентов использую EhLib 3.6 и JEDI Vcl. HELP!
|