Найден 141 результат

avenger
12 ноя 2008, 15:21
Форум: Вопросы создания клиентских и серверных приложений
Тема: передача соединения с БД между разными DLL
Ответы: 8
Просмотры: 6102

Re: передача соединения с БД между разными DLL

Я передаю дескриптор соединения в dll с помощью следующей структуры type PDBExportHandle = ^TDBExportHandle; TDBExportHandle = packed record Handle: TISC_DB_HANDLE; LibraryName: PChar; SQLDialect: Integer; CharSet: PChar; end; А потом в dll так: dbMain.LibraryName := ADBExportHandle^.LibraryName; db...
avenger
17 июл 2008, 08:25
Форум: Проектирование БД и запросов
Тема: Справочник с интервалом дат
Ответы: 14
Просмотры: 9437

Хранить дату начала действия ставки, а потом выбирать ближайшую к искомой вниз Именно так и делаю. А объединяю данные в процедуре с for select по данным и курсором по процентным ставкам за указанную дату. Примерно так: WHILE (DATE_CURRENT <= DATE_END) DO BEGIN IF (DATE_CURRENT > DATE_TMP AND ROW_CO...
avenger
25 апр 2008, 14:15
Форум: Общие проблемы
Тема: А на Fb 2.1 можно пароль на БД поставить?
Ответы: 15
Просмотры: 7977

Re: А на Fb 2.1 можно пароль на БД поставить?

Antoxa писал(а):Чтобы ее незльзя было открыть имея доступ к файлу, как в бд Access?
Пароль на базу в Access снимается утилитой в три секунды.
avenger
26 мар 2008, 12:05
Форум: Проектирование БД и запросов
Тема: Помогите с запросом...
Ответы: 9
Просмотры: 7685

Tonal писал(а):Если нужно для одного узнать пересекался ли он с кем-нибудь, то алгоритм я привёл. :-)
Запрос, приведенный мной постом выше, с учетом поправки Кузнецова Евгения, возвращает для заданного пользователя, с кем он пересекается. А не для двух заданных пользователей проверяет условие.
avenger
26 мар 2008, 11:42
Форум: Проектирование БД и запросов
Тема: Помогите с запросом...
Ответы: 9
Просмотры: 7685

Кузнецов Евгений писал(а):(T1.Min_Num <= T2.Max_num ) and (T2.Min_num <= T1.Max_num)
То, что нужно.

Код: Выделить всё

select t2.userfk
from table1 t1
join table1 t2 on t2.userfk <> t1.userfk
where t1.userfk = :id
group by 1
having ( (min(t1.num) <= max(t2.num)) and (min(t2.num) <= max(t1.num)) )
А другой способ есть решить эту задачу?
avenger
26 мар 2008, 08:37
Форум: Проектирование БД и запросов
Тема: Помогите с запросом...
Ответы: 9
Просмотры: 7685

Т.е. тебе нужно выяснить Мне надо вычислить - пересекаются диапазоны или нет. Т.е. для первого примера имеем 2-а диапазона: UserFK Min(num) Max(num) 1 1 4 2 3 3 Видно, что диапазон для 1-го пользователя пересекается с диапазоном 2-го и наоборот. Для 2-го примера UserFK Min(num) Max(num) 1 1 3 2 4 6...
avenger
25 мар 2008, 23:11
Форум: Проектирование БД и запросов
Тема: Помогите с запросом...
Ответы: 9
Просмотры: 7685

Помогите с запросом...

Добрый вечер! Пусть имеется данные NUM USER_FK 1 1 2 1 3 2 4 1 Необходимо найти, было ли, если вести обход в порядке возрастания номера, пересечение по пользователю. Т.е. одновременно с первым пользователем работал ли второй. Например: для пользователя #1 min(num) < num=3 < max(num) => c первым поль...
avenger
15 мар 2008, 22:30
Форум: Проектирование БД и запросов
Тема: Разделение данных на несколько баз данных
Ответы: 17
Просмотры: 10518

А чем плохо, например, КЛАДР вынести в отдельную базу?

У меня например на данный момент ТОЛЬКО КЛАДР лежит в отдельной ReadOnly базе. А в информационных базах - ID объекта и реальный адрес объекта.
avenger
15 фев 2008, 21:29
Форум: Общие проблемы
Тема: Date 2 Integer
Ответы: 42
Просмотры: 19816

kdv писал(а):я может огорчу автора топика, но date в третьем диалекте - это грубо говоря и есть integer, хранящий количество дней с определенной даты.
Я это знаю, и это логично. Жалко, что нельзя сделать cast(date as integer)...
avenger
15 фев 2008, 00:04
Форум: Общие проблемы
Тема: Date 2 Integer
Ответы: 42
Просмотры: 19816

Ну да, наверно проще всего преобразовать дату в integer - это найти РАЗНОСТЬ между данной датой и точкой отсчёта.

Типа Trunc(Date) = Date_Current - '1899-12-30'.
avenger
14 фев 2008, 23:53
Форум: Общие проблемы
Тема: Date 2 Integer
Ответы: 42
Просмотры: 19816

WildSery писал(а): Форматируй UDF-кой, если унификацию хочешь в строке. А лучше клиент пусть процессор морщит, как тебе её показать.
Я же сказал - это только для репликации. На мой взгляд PK типа 10/15/5684767 лучше чем такой 10/15/2007-10-01, т.к. дата представлена типом Integer.
avenger
14 фев 2008, 23:46
Форум: Общие проблемы
Тема: Date 2 Integer
Ответы: 42
Просмотры: 19816

kdv писал(а):первый вариант это 3-ий диалект, второй вариант - 1й диалект.
Да действительно первый диалект. Просто первую попавшуюся под руку базу взял employee.fdb, а она в первом диалекте. Ну тогда проблема действительно надуманная, т.к. fb1.5 также в формате yyyy-mm-dd.
avenger
14 фев 2008, 15:18
Форум: Общие проблемы
Тема: Date 2 Integer
Ответы: 42
Просмотры: 19816

Re: Date 2 Integer

hvlad писал(а): Это ты мне про толк рассказываешь ? У тебя одна БД в 1-ом диалекте, а другая - в 3-ем - "и толку" ? Пореплицируй их, ага, особенно bigint'ы
Обе базы в 3-ем диалекте, версии разные fb2 и fb1.5

Почему не скажешь?
avenger
14 фев 2008, 14:57
Форум: Общие проблемы
Тема: Date 2 Integer
Ответы: 42
Просмотры: 19816

Re: Date 2 Integer

hvlad писал(а):У него - варчар. См. диалекты
И толку, в одном месте так в другом так. Может есть простой способ сделать так cast(date as integer)?
avenger
14 фев 2008, 14:31
Форум: Общие проблемы
Тема: Date 2 Integer
Ответы: 42
Просмотры: 19816

Re: Date 2 Integer

а в чем глубокий смысл? Есть подозрение, что SELECT CAST(CAST('2007-09-20' AS DATE) AS VARCHAR(10)) FROM RDB$DATABASE на разных серверах выглядет по разному. Например 2007-09-20 или 20-SEP-200. А Integer выглядет везде одинаково. Хочется репликацию не родного мне проекта усовершенствовать. Там в ка...
avenger
14 фев 2008, 14:12
Форум: Общие проблемы
Тема: Date 2 Integer
Ответы: 42
Просмотры: 19816

Date 2 Integer

Привет Всем! Есть какой способ сделать преобразование Date->Integer?

P/S/ Придумал пока 2-а способа: UDF, SQL: Количество дней * 24.

Есть еще варианты?
avenger
18 июн 2007, 09:10
Форум: Вопросы создания клиентских и серверных приложений
Тема: Выскакивает transaction is active
Ответы: 7
Просмотры: 7955

Re: Высккивает transaction is active

Надо, наверно как нибудь так:

Код: Выделить всё

if (!sql->Transaction->Active)
  sql->Transaction->StartTransaction(); 
avenger
16 май 2007, 23:26
Форум: Проектирование БД и запросов
Тема: внутренний фильтр
Ответы: 1
Просмотры: 3274

Re: внутренний фильтр

bachin писал(а):есть задачи, по ним есть сессии, хочу выбрать по каждой задаче по 10 последних сессий...
А поиском слабо воспользоваться и найти ЭТО
avenger
26 апр 2007, 17:57
Форум: Проектирование БД и запросов
Тема: Преобразовать три запроса в один, сбор статистики по таблице
Ответы: 11
Просмотры: 8168

CREATE PROCEDURE GetAllChilds(Parent INTEGER) RETURNS(ID INTEGER) AS BEGIN FOR SELECT r.ID FROM tblRegions r WHERE r.Parent=:Parent INTO :ID DO BEGIN SUSPEND; <=== НЕ НУЖЕН IF(EXISTS(SELECT * FROM tblRegions WHERE tblRegions.Parent=:ID)) THEN BEGIN FOR SELECT ID FROM GetAllChilds(:ID) INTO :ID DO B...
avenger
01 апр 2007, 13:42
Форум: Проектирование БД и запросов
Тема: Организация таблицы с перекрестными ссылками, как?
Ответы: 9
Просмотры: 8132

Получается не много-ко-много, а один-ко-много. Т.к. одна книга и много тематик. Это дерево очень хочется оставить, так пользователю проще ориентироваться будет. Но также не обходимо связать книгу с различными видами тематик. В любом случае, делай через промежуточную таблицу. Структуру привел выше п...