Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.01.2007, 17:49
ZevSS ZevSS вне форума
Прохожий
 
Регистрация: 23.01.2007
Сообщения: 7
Репутация: 10
Вопрос D7: БД ADO на MS SQL Server 2000

Сразу прошу прощения за вопрос, который наверняка много раз тут был задан, но крайняя необходимость сподвигла задать его снова. Задача: Написать БД (разработать БД и написать клиента) для отдела кадров. Готовые решения от 1С и т.д. не катят. Не спрашивайте почему. Работать все должно через ADO на MS SQL Server 2000. Собственно проблема в том, что я даже не знаю как к ней подступиться, ибо БД практически не занимался. Избавиться от задания нельзя и писать придется обязательно. Причем надо сделать до середины марта Кому не жалко, если кто писал клиентов на подобной связке ADO+SQL Server скиньте пожалуйста рабочий пример, а то у меня уже вешалки наступают. Я накачал кучу примеров, но как-то все не то. Хотелось бы избавиться от DBGrid'а и пользоваться нормальными визуальными компонентами. HELP ME! Кроме того, не откажусь от помощи людей, которым можно задать вопрос и оперативно получить вразумительный ответ по мылу, аське и т.д. Очень надеюсь на вашу помощь.
Ответить с цитированием
  #2  
Старый 24.01.2007, 05:42
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Для начала разработай структуру.
Понключение к MS SQL через ADO процедура довольно простая, справишься без проблем.
Цитата:
Хотелось бы избавиться от DBGrid'а и пользоваться нормальными визуальными компонентами.
А чем он плох? Я использую повсеместно.

По конкретным вопросам милости просим в аську.
Ответить с цитированием
  #3  
Старый 25.01.2007, 08:50
Tigrillo Tigrillo вне форума
Прохожий
 
Регистрация: 18.01.2007
Сообщения: 38
Репутация: 10
По умолчанию

пиши мне в АСЮ, я тебе помогу, так как я постоянно работаю с Ms Sql 2000 - 2005 Ado и т.д.
Ответить с цитированием
  #4  
Старый 11.03.2007, 10:55
ZevSS ZevSS вне форума
Прохожий
 
Регистрация: 23.01.2007
Сообщения: 7
Репутация: 10
По умолчанию Начинаем вопросы

Итак структура БД создана.

1. В БД есть таблица tdSotr, в которой имеется поле Photo: image. На форме приложения имеется DBImage с кнопкой "загрузить фото". Как сделать так, чтобы можно было загрузить фотку в компонент и записать в базу ну и естественно отображать ее в этом компоненте? Нужно чтобы была возможность сохранять не только BMP, но и JPEG !
2. Как правильно отображать в DBImage картинку (в плане масштабирования и пропорций) ?
3. Как изменить Z-порядок выбора элементов на форме по нажатию на Tab ?
Ответить с цитированием
  #5  
Старый 12.03.2007, 12:10
Аватар для NiiliT
NiiliT NiiliT вне форума
Прохожий
 
Регистрация: 02.03.2007
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от ZevSS
Хотелось бы избавиться от DBGrid'а
жеееесть!

а что ты хочешь использовать на начальной стадии*?


Цитата:
Сообщение от ZevSS
1. В БД есть таблица tdSotr, в которой имеется поле Photo: image. На форме приложения имеется DBImage с кнопкой "загрузить фото". Как сделать так, чтобы можно было загрузить фотку в компонент и записать в базу ну и естественно отображать ее в этом компоненте? Нужно чтобы была возможность сохранять не только BMP, но и JPEG !
да вроде он сам берет картинку!!! тока свойствО DataSource и DataFields укажи))) ну если не пойдет поищи свойство типа Load....

Цитата:
Сообщение от ZevSS
2. Как правильно отображать в DBImage картинку (в плане масштабирования и пропорций) ?
понятия бывают разные!!! ? просто аккуратно уместить её всю... так если не ошибаюсь в там есть свойство Propotcional или как то так!)_

Цитата:
Сообщение от ZevSS
3. Как изменить Z-порядок выбора элементов на форме по нажатию на Tab ?
на чем пишешь??? ищи свойство TabOrder и по порядку 0,1,2,3 ...
Ответить с цитированием
  #6  
Старый 12.03.2007, 21:03
ZevSS ZevSS вне форума
Прохожий
 
Регистрация: 23.01.2007
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от NiiliT
жеееесть!
а что ты хочешь использовать на начальной стадии*?

DBGrid использую все-таки.

Цитата:
Сообщение от NiiliT
да вроде он сам берет картинку!!! тока свойствО DataSource и DataFields укажи)))

Берет. Только когда читает из БД. А как туда грамотно записать эту картинку?
Ответить с цитированием
  #7  
Старый 13.03.2007, 10:33
Аватар для NiiliT
NiiliT NiiliT вне форума
Прохожий
 
Регистрация: 02.03.2007
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от ZevSS
А как туда грамотно записать эту картинку?
наверно как то так:

Код:
  DBImage1.Picture.LoadFromFile('c:\image.bmp');
Ответить с цитированием
  #8  
Старый 13.03.2007, 10:54
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Запись картинки в БД:
Код:
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  
Старый 19.03.2007, 21:20
ZevSS ZevSS вне форума
Прохожий
 
Регистрация: 23.01.2007
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Запись картинки в БД:

Картинку-то записывает вроде. Только вот если картинка BMP, то все Ok, а если картинка JPEG, то при просмотре в DBImage возникает ошибка типа "Данная информация не является Bitmap'ом" и естественно картинка не отображается. Как все-таки нормально сохранять и отображать именно JPEG?
Ответить с цитированием
  #10  
Старый 19.03.2007, 21:30
ZevSS ZevSS вне форума
Прохожий
 
Регистрация: 23.01.2007
Сообщения: 7
Репутация: 10
По умолчанию Новые вопросы

Итак новые вопросы возникли:
1. Меня интересует вопрос про репликацию БД на MS SQL Server. Итак имеется несколько компов на которых установлен MS SQL Server 2000 и собственная моя прога. На серваке БД в которой есть таблица tdSotr (содержит список сотрудников отдела конторы). В данной таблице автоинкрементное поле IDSotr. Теперь вопрос: как правильно собрать данные со всех компов на один комп? Естественно чтобы не было проблем с уникальностью IDSotr.
2. Когда нахожусь в дельфе - постоянно сыпятся ошибки EOleException. Если запустить exe'шник, то все Ok - никаких исключений нет. Что это такое?
3. У кого взять не демо EhLib? (чтобы работал без IDE Delphi).

p.s. Вообще-то больше всего меня волнует вопрос с сохранением\чтением JPEG в\из БД.
Ответить с цитированием
  #11  
Старый 20.03.2007, 05:48
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от ZevSS
Картинку-то записывает вроде. Только вот если картинка BMP, то все Ok, а если картинка JPEG, то при просмотре в DBImage возникает ошибка типа "Данная информация не является Bitmap'ом" и естественно картинка не отображается. Как все-таки нормально сохранять и отображать именно JPEG?
Используй простой TImage и не мучайся.
Ответить с цитированием
  #12  
Старый 22.03.2007, 08:11
ZevSS ZevSS вне форума
Прохожий
 
Регистрация: 23.01.2007
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Используй простой TImage и не мучайся.

Как? Пример можно? Сохранять в базе я понял как. Твой предыдущий код работает. А как загрузить это в TImage?

И еще: Есть DBEdit с маской ввода. Если юзер что-то неправильно ввел в этот DBEdit, то при потере фокуса возникает исключение. Как его перехватить? Использовать OnValidate? А как? Примером поделитесь плиз. Сроки идут.
Ответить с цитированием
  #13  
Старый 22.03.2007, 09:19
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
А как загрузить это в TImage?
Assign спасет гиганта мысли
Примерно так:
Код:
Image1.Pictire.Bitmap.Assign(Table1.FieldByName('Picture').Value)
возможно что и не так проверять не на чем, да и не хочется когда-то давно подобное делал - работало.
Ответить с цитированием
  #14  
Старый 04.04.2007, 22:20
ZevSS ZevSS вне форума
Прохожий
 
Регистрация: 23.01.2007
Сообщения: 7
Репутация: 10
Лампочка Странный глюк

С картинками разобрался. Только вот глюк какой-то хитрый у меня в программе. Компилю проект на своем компе. Запускаю готовый exe'шник на своем компе - все Ok. Переношу этот exe'шник на другой комп и при загрузке вылетает ошибка "Runtime error 216" и, естественно, приложение не запускается. НО! Если откомпилить проект на этом компе (где экзшник вылетает с ошибкой), то все работает на этом компе нормуль. Что это такое? Использую Delphi 7, компоненты ADO. Кроме стандартных компонентов использую EhLib 3.6 и JEDI Vcl. HELP!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter