Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 492
от 27.05.2008, 06:05

Администратор:Gh0stik
В рассылке:Подписчиков: 292, Экспертов: 22
В номере:Вопросов: 7, Ответов: 12

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 136601: Уважаемые эксперты! У меня такая проблема: программа написана на Delphi 7, формат базы данных MS Access. Создаю установочный диск с помощью пакета InstallShieldExpress, переношу программу на другой компьютер, запускаю её и выходит сообщени...
Вопрос № 136716: Подскажите пожалуйста ! Я экспортирую данные из Delphi в Excel. Как сделать чтобы вокруг этих двух ячеек нарисовать границы (чтобы как в таблице). Sheet.Cells[1,4]:=' кол-во'; Sheet.Cells[2,4]:='4'; Заранее спасибо. ...
Вопрос № 136775: Подскажите пожалуйста ! Я экспортирую данные из Delphi в Excel. Как сделать чтобы вокруг этих двух ячеек нарисовать границы (чтобы были только внешние!!!, а внутренней не было). Sheet.Cells[1,4]:=' кол-во'; Sheet.Cells[2,4]:='4'; Зара...
Вопрос № 137066: Как вывести результат запросa в таблицу? Стандартный "SELECT field1,field2 FROM table1.dbf INTO TABLE table2.dbf" в Delphi не работает, т.к. не воспринимает конструкцию "INTO TABLE". Можно, конечно, пошагово пройти весь QUERY c за...
Вопрос № 137225: Уважаемые эксперты! А можно ли в DbGrid сделать так, чтоб разные поля одного столбца отражались разным цветом? Т. е. если план выпуска продукции - 100 шт. Если еще не хватает, то одним цветом; если план выполнен - другим; если перевыполнен - третьим....
Вопрос № 137317: Здравствуйте! У меня такая проблема. Хочу вывести результат суммирования полей столбца в DbGride в Label или DbText. как это сделать? База на Paradox. Подключение к базе стандартное - DbGrid->DataSource->Table. Требуется вывести результат (Агрег...
Вопрос № 137666: Здравствуйте. Сегодня пол дня убил, но так и не сделал. Задача такая, есть две таблицы, основная и дополнительная. Основная подключена через АДО, все поля и записи отображаются. Задача в дополнительном окне DBGrid отобразить одну запись соответствующ...

Вопрос № 136.601
Уважаемые эксперты!

У меня такая проблема: программа написана на Delphi 7, формат базы данных MS Access. Создаю установочный диск с помощью пакета InstallShieldExpress, переношу программу на другой компьютер, запускаю её и выходит сообщение, что не найден мой файл Acceess (Он у меня находится на компьютере, где я создавала программу в папке «Мои документы»). Перенесла на другой ПК в эту же папку («Мои документы») этот файл (MS Access), но сообщение всё равно выходит. При попытке закрыть это сообщение программа всё-таки запускается, но в ней нет никаких данных. Пробовала создавать файл запуска в других программах инсталляции, но результат всё тот же. Подскажите, пожалуйста в чём моя ошибка?
Заранее благодарю – Людмила.
Отправлен: 13.05.2008, 09:27
Вопрос задала: Паршина Людмила Леонидовна (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jakoni
Здравствуйте, Паршина Людмила Леонидовна!
Я предпологаю все дело в пути к файлу, попробуйте создать в папке с программой одну папочку куда и положите свой файл, и потом измените путь к файлу БД. Лучше всего использовать относительные пути, к примеру воспользоваться функцией ExtractFilePatch(ApplikationExeName)+'dbdatabasename.mdb'
Удачи
---------
Убил юзера, спас сеть
Ответ отправил: Jakoni (статус: 3-ий класс)
Ответ отправлен: 13.05.2008, 09:36

Отвечает: Mukomelo Yevgeniy Bogdanovich
Здравствуйте, Паршина Людмила Леонидовна!
Проблема в том, что папка "Мои документы" в системе Windows XP, физически расположена в личном каталоге пользователя, то есть, если имя пользователя на разных компьютерах не совпадает, то маршрут к папке "Мои документы" будет разным. Рекомендую расположить файл с базой данных например в папку "Program Files". Так же Вы можете воспользоваться процедурой определения месторасположения программы, и в коде программы задавать маршрут расположения базы данных. Примеры в приложении.

Приложение:

---------
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили 'Титаник'.

Ответ отправил: Mukomelo Yevgeniy Bogdanovich (статус: 1-ый класс)
Ответ отправлен: 13.05.2008, 09:37

Отвечает: Selya
Здравствуйте, Паршина Людмила Леонидовна!
Проблема в том, как вы создаёте подключение в ADOConnection:
1. В инсперторе объктов
ADOConnection.Connected = false
ADOConnection.ConnectionString = ''
хотя во время проектирования, для удобства, эти свойства могут быть установлены, но когда компилируете релиз, сбросьте эти свойства, как указано выше.
2. См. приложение.

Т.о. если программа не найдёт файл БД Access в папке с программой, то сначала в OpenDialog будет предложено найти этот *.mdb-файл, а если найти не удалось, то программа просто не запустится.

Приложение:

Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 13.05.2008, 10:13


Вопрос № 136.716
Подскажите пожалуйста !
Я экспортирую данные из Delphi в Excel. Как сделать чтобы вокруг этих двух ячеек нарисовать границы (чтобы как в таблице).
Sheet.Cells[1,4]:=' кол-во';
Sheet.Cells[2,4]:='4';
Заранее спасибо.
Отправлен: 13.05.2008, 22:20
Вопрос задал: Oles01 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Selya
!!!
Здравствуйте, Oles01!
Сначала запишите макрос в Excel:
1. начните запись макроса;
2. проделайте все операции ручками (выделение диапазона клеток, назначение выделенному границ и т.д.);
3. затем остановите запись макроса.
4. Затем записанный макрос откройте во встроенном в Excel VisualBasic for Applications. Там все ваши действия будут прописаны.
5. Затем перенесите из вижуал бейсика в Delphi, с некоторой сноровкой особого труда не составит.

Ответ НЕ соответствует рассылке!
-----
∙ Отредактировал: Gh0stik (Академик)
∙ Дата редактирования: 14.05.2008, 00:56
Ответ отправил: Selya (статус: 7-ой класс)
Ответ отправлен: 13.05.2008, 23:56
Оценка за ответ: 1

Отвечает: Gh0stik
Здравствуйте, Oles01!

Привожу пример с использование OLE, в котором создается новый файл, некоторый диапазон ячеек заливается одним цветом, другой другим цветом, также в одну из ячеек вносится текст плюс изменяем толщину линии (т.е. задаем границу).

uses
... , ComObj;

...
var
Form1: TForm1;
Excel: Variant;

implementation

{$R *.dfm}

...

procedure TForm1.Button1Click(Sender: TObject);
begin
  Excel:=CreateOleObject('Excel.Application');
  Excel.visible:=true;
  Excel.WorkBooks.Add;
  //текст в ячейке
  Excel.Cells[5,5]:='Администрация';
  //цвет ячейки
  Excel.Cells[2,2].Interior.Color := RGB(200, 0, 100);
  //толщина границы диапазона ячеек
  Excel.Cells[5,5].Borders.Weight:=3;
  // изменяем цвет диапазона ячеек
  Excel.Range['C4','D5'].Interior.Color := RGB(223, 123, 123);
end;


Good Luck!
---------
Непечатный жаргон - это тот язык, которым решительно все программисты владеют в совершенстве.
Ответ отправил: Gh0stik (статус: Академик)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
WWW: http://gh0stik.rusfaq.ru/
ICQ: 289363162
----
Ответ отправлен: 14.05.2008, 00:55
Оценка за ответ: 5


Вопрос № 136.775
Подскажите пожалуйста !
Я экспортирую данные из Delphi в Excel. Как сделать чтобы вокруг этих двух ячеек нарисовать границы (чтобы были только внешние!!!, а внутренней не было).
Sheet.Cells[1,4]:=' кол-во';
Sheet.Cells[2,4]:='4';
Заранее спасибо.
Отправлен: 14.05.2008, 12:02
Вопрос задал: Oles01 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Павел Шведенко
Здравствуйте, Oles01!
Посмотрите справку VB editor for Excel. Все атрибуты, свойства и методы VB

---------
Всегда
Ответ отправил: Павел Шведенко (статус: 2-ой класс)
Ответ отправлен: 14.05.2008, 12:58
Оценка за ответ: 3


Вопрос № 137.066
Как вывести результат запросa в таблицу? Стандартный "SELECT field1,field2 FROM table1.dbf INTO TABLE table2.dbf" в Delphi не работает, т.к. не воспринимает конструкцию "INTO TABLE". Можно, конечно, пошагово пройти весь QUERY c заполнением полей таблицы table1, но... уж больно некрасивое решение.
Отправлен: 16.05.2008, 13:37
Вопрос задал: Alex_ttt (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Drbear
Здравствуйте, Alex_ttt!

Попробуйте такой вариант: скопировать данные из открытого Query в Table (Table не должна быть занята):

Table.BatchMove(Query, batCopy);
Table.Open;

Пример написан "на коленке".
Надеюсь, помог Вам.
Ответ отправил: Drbear (статус: 10-ый класс)
Ответ отправлен: 16.05.2008, 13:46
Оценка за ответ: 5
Комментарий оценки:
хотя это мне не помогло (см.мини-форум), но мысль явно правильная, осталось только разобраться, почему нарушается структура таблицы-приемника. Параметр "batCopy" - однозначно в моем случае единственно правильный.

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Alex_ttt!

INSERT
into table2.dbf (field1, field2)
SELECT field1,field2 FROM table1.dbf

И кстати, желеательно уточнять, какая СУБД
Ответ отправил: Лукьяненко Алексей Валериевич (статус: Студент)
Ответ отправлен: 16.05.2008, 16:13
Оценка за ответ: 3
Комментарий оценки:
такая конструкция не работает


Вопрос № 137.225
Уважаемые эксперты! А можно ли в DbGrid сделать так, чтоб разные поля одного столбца отражались разным цветом? Т. е. если план выпуска продукции - 100 шт. Если еще не хватает, то одним цветом; если план выполнен - другим; если перевыполнен - третьим.
Отправлен: 17.05.2008, 17:00
Вопрос задал: Осипов Сергей Анатольевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Raptor3
Здравствуйте, Осипов Сергей Анатольевич!

Вот ссылка на статью по теме разноцветного грида - http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168#link2

В приложении выдержка - то что вам нужно

Приложение:

---------
Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете

Ответ отправил: Raptor3 (статус: 8-ой класс)
Ответ отправлен: 17.05.2008, 18:18
Оценка за ответ: 5


Вопрос № 137.317
Здравствуйте! У меня такая проблема. Хочу вывести результат суммирования полей столбца в DbGride в Label или DbText. как это сделать?
База на Paradox. Подключение к базе стандартное - DbGrid->DataSource->Table. Требуется вывести результат (Агрегатная ф-ия SQL - SUM) в отдельный компонент.
Заранее спасибо

Вопрос дополнен.
-----
∙ Отредактировал: Gh0stik (Академик)
∙ Дата редактирования: 19.05.2008, 21:13
Отправлен: 18.05.2008, 11:32
Вопрос задал: Осипов Сергей Анатольевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Gh0stik
Здравствуйте, Осипов Сергей Анатольевич!

Расположите на форме еще один объект Query (вкладка BDE), а также компоненты Edit и Button. По нажатию на кнопку создайте такой обработчик:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with Query1 do begin
    SQL.Clear;
    SQL.Add('SELECT SUM(field_name) as FSum FROM table_name'); //пишем сам запрос для нахождения суммы
    Active:=true; //активируем запрос
    Edit1.Text:=FieldValues['FSum']; // выносим результат в Edit1
  end;
end;

где field_name - название поля по которому и находим сумму
table_name - название испытуемой таблицы.

В целях пущей уверенности строку
Edit1.Text:=FieldValues['FSum'];
можно заменить на
Edit1.Text:=VarToStr(FieldValues['FSum']);

Good Luck!
---------
Непечатный жаргон - это тот язык, которым решительно все программисты владеют в совершенстве.
Ответ отправил: Gh0stik (статус: Академик)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
WWW: http://gh0stik.rusfaq.ru/
ICQ: 289363162
----
Ответ отправлен: 19.05.2008, 21:57
Оценка за ответ: 5


Вопрос № 137.666
Здравствуйте. Сегодня пол дня убил, но так и не сделал. Задача такая, есть две таблицы, основная и дополнительная. Основная подключена через АДО, все поля и записи отображаются. Задача в дополнительном окне DBGrid отобразить одну запись соответствующую выделенной записи в основной. Пока не доходит как наладить такую связь. пока понял, что надо дополнительный DBGrid подключать к компонету ADOQuery, но это чудо просит заполнить свойство SQL. Как я понимаю именно через этот запрос все и происходит, но добиться пока не смог. Составлял INSERT INTO имя_DBGrid SELECT * FROM имя_поля. Примерно так, были и другие варианты, ни один не заработал. Но насколько я понимаю селект выбирает поле, а нужно запись. Может кто поможет с запросом и направит на верный путь как это дело организовать? Можно кратко, разберусь уже сам если что.
Отправлен: 20.05.2008, 22:13
Вопрос задал: Dark128 (статус: Практикант)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: BlackRaider
Здравствуйте, Dark128!
Кидаем на форму 2 грида, 2 DATASOURCE и 2 ADOQUERY (У квериков выставляем свойство ADOConnect на нужную вам базу)
В 1-ом квери SQL запрос
Select *
from <table_name1>
[where (условие)]
В 2-м запрос вида:
Selec *
from <table_name2>
where id=: (название поля по которому определяется соответствие 1 и 2 таблица ":" обязательно!)
id=Поле из таблицы 2, как я предпологаю в таблице оно ключевое.

во 2-м квери свойство datasource ставим = datasource'у который связан с 1 квери.
и делаем свойство Active у Adoquery= true
Ответ отправил: BlackRaider (статус: 3-ий класс)
Ответ отправлен: 21.05.2008, 08:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо, буду пробовать. Мне не понятно только одно, для чего два DataSource?

Отвечает: Павел Шведенко
Здравствуйте, Dark128!
SQL: SELECT * FROM Таблица WHERE Поле = "Значение"

---------
Всегда
Ответ отправил: Павел Шведенко (статус: 2-ой класс)
Ответ отправлен: 21.05.2008, 09:32
Оценка за ответ: 5
Комментарий оценки:
В принципе сейчас это понял.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.92 pre 5.0 RC2 от 09.05.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное