Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Вопрос по Базе данных
Вопрос по Базе данных
СергейДата: Чт, 08 Апреля 2010, 18:25 | Сообщение # 241
Необукер
mishem, вопросов больше нет :D т.е. у меня
 
Сообщениеmishem, вопросов больше нет :D т.е. у меня

Автор - Сергей
Дата добавления - 08 Апреля 2010 в 18:25
ArtexДата: Пт, 09 Апреля 2010, 14:50 | Сообщение # 242
Новичок
Всё! Наконец-то разобрался с функцией создания поиска по базе.
Но появилась следующая загвоздка-где прописывается счётчик записей dbfGetRecordCount и dbfGetRecordNumber (в справке указан только синтаксис команд), и почему при выводе базы в режиме таблицы, или при экспорте в Access или Excell содержиммое базы отображается на английском (при вводе данных в форму использую национальый шрифт)
 
СообщениеВсё! Наконец-то разобрался с функцией создания поиска по базе.
Но появилась следующая загвоздка-где прописывается счётчик записей dbfGetRecordCount и dbfGetRecordNumber (в справке указан только синтаксис команд), и почему при выводе базы в режиме таблицы, или при экспорте в Access или Excell содержиммое базы отображается на английском (при вводе данных в форму использую национальый шрифт)

Автор - Artex
Дата добавления - 09 Апреля 2010 в 14:50
СергейДата: Пт, 09 Апреля 2010, 15:32 | Сообщение # 243
Необукер
Quote (Artex)
прописывается счётчик записей dbfGetRecordCount

это переменая плага и должна быть написана в хелпе
Синтаксис типа такого
Quote
[База.Таблица.Count]
переменые подставить свои


Сообщение отредактировано
Сергей - Пт, 09 Апреля 2010, 15:33
 
Сообщение
Quote (Artex)
прописывается счётчик записей dbfGetRecordCount

это переменая плага и должна быть написана в хелпе
Синтаксис типа такого
Quote
[База.Таблица.Count]
переменые подставить свои

Автор - Сергей
Дата добавления - 09 Апреля 2010 в 15:32
mishemДата: Пт, 09 Апреля 2010, 18:36 | Сообщение # 244
Эксперт форума
Quote (Artex)
и почему при выводе базы в режиме таблицы, или при экспорте в Access или Excell содержиммое базы отображается на английском

Artex, Вы хелп будете читать?
Есть такая команда dbfSetCellStyle где надо поставить набор символов Кирилический


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Quote (Artex)
и почему при выводе базы в режиме таблицы, или при экспорте в Access или Excell содержиммое базы отображается на английском

Artex, Вы хелп будете читать?
Есть такая команда dbfSetCellStyle где надо поставить набор символов Кирилический

Автор - mishem
Дата добавления - 09 Апреля 2010 в 18:36
ArtexДата: Сб, 10 Апреля 2010, 21:52 | Сообщение # 245
Новичок
Quote (mishem)
Вы хелп будете читать?

Хелп то я читаю, но там только синтаксис, javascript://
Code
dbfSetCellStyle "[PubDir]sample.dbf" "Window" "AcadNusx" "9" "Normal" "WindowText"
я прописываю в подпрограммах но абсолютно никакой реакции

Добавлено (09 Апрель 2010, 20:38)
---------------------------------------------

Quote (mishem)
Есть такая команда dbfSetCellStyle

Всё, разобрался. Оказывается не туда прописывал :)

Добавлено (10 Апрель 2010, 21:52)
---------------------------------------------
Пытаюсь прописать счётчик в базу, но увы.
В подпрограммах прописываю

Code
:count  
dbfOpen "[PubDir]sample.dbf" ""  
dbfGetRecordNumber "[PubDir]sample.dbf" "[CurRec]"  
dbfQueryCount "[PubDir]sample.dbf" "[RecCount]"

В свойствах формы
Code
GoSub "count"

При просмотре проекта в поле счётчика выдаётся запись 1/10 где 10 число записей в базе, при переходе на следующую запись не меняется номер записи [CurRec]
Общее количество записей в базе [RecCount]изменяется только после перезапуска проекта
Где же я что-то не дописал
 
Сообщение
Quote (mishem)
Вы хелп будете читать?

Хелп то я читаю, но там только синтаксис, javascript://
Code
dbfSetCellStyle "[PubDir]sample.dbf" "Window" "AcadNusx" "9" "Normal" "WindowText"
я прописываю в подпрограммах но абсолютно никакой реакции

Добавлено (09 Апрель 2010, 20:38)
---------------------------------------------

Quote (mishem)
Есть такая команда dbfSetCellStyle

Всё, разобрался. Оказывается не туда прописывал :)

Добавлено (10 Апрель 2010, 21:52)
---------------------------------------------
Пытаюсь прописать счётчик в базу, но увы.
В подпрограммах прописываю

Code
:count  
dbfOpen "[PubDir]sample.dbf" ""  
dbfGetRecordNumber "[PubDir]sample.dbf" "[CurRec]"  
dbfQueryCount "[PubDir]sample.dbf" "[RecCount]"

В свойствах формы
Code
GoSub "count"

При просмотре проекта в поле счётчика выдаётся запись 1/10 где 10 число записей в базе, при переходе на следующую запись не меняется номер записи [CurRec]
Общее количество записей в базе [RecCount]изменяется только после перезапуска проекта
Где же я что-то не дописал

Автор - Artex
Дата добавления - 10 Апреля 2010 в 21:52
mishemДата: Сб, 10 Апреля 2010, 22:20 | Сообщение # 246
Эксперт форума
Дело в том, что при переходе на новую строку должна срабатывать команда GoSub "count". При щелчке по объекту Rectangle в котором отображается таблица штатными средствами не возможно сделать, в плагине этого нет и в самой программе тоже. Можно воспользоваться плагином Petera zmFunctions (монитор мыши). Или же создать кнопки для навигации с командами dbfNext и dbfPrev и добавить в них команду GoSub "count". Ну или каким нибудь другим методом который Вы придумаете. :)

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеДело в том, что при переходе на новую строку должна срабатывать команда GoSub "count". При щелчке по объекту Rectangle в котором отображается таблица штатными средствами не возможно сделать, в плагине этого нет и в самой программе тоже. Можно воспользоваться плагином Petera zmFunctions (монитор мыши). Или же создать кнопки для навигации с командами dbfNext и dbfPrev и добавить в них команду GoSub "count". Ну или каким нибудь другим методом который Вы придумаете. :)

Автор - mishem
Дата добавления - 10 Апреля 2010 в 22:20
ArtexДата: Сб, 10 Апреля 2010, 22:42 | Сообщение # 247
Новичок
Quote (mishem)
Или же создать кнопки для навигации с командами dbfNext и dbfPrev и добавить в них команду GoSub "count"

Спасибо, действительно помогло. :)
 
Сообщение
Quote (mishem)
Или же создать кнопки для навигации с командами dbfNext и dbfPrev и добавить в них команду GoSub "count"

Спасибо, действительно помогло. :)

Автор - Artex
Дата добавления - 10 Апреля 2010 в 22:42
mishemДата: Сб, 10 Апреля 2010, 22:52 | Сообщение # 248
Эксперт форума
Quote (Artex)
Спасибо, действительно помогло

Обращайтесь :)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Quote (Artex)
Спасибо, действительно помогло

Обращайтесь :)

Автор - mishem
Дата добавления - 10 Апреля 2010 в 22:52
ArtexДата: Вс, 09 Мая 2010, 11:49 | Сообщение # 249
Новичок
Всем привет.
Создал многостраничный проект из 5 неидентичных форм. Для каждой формы создана своя база данных.
Вопрос вот в чём, каким образом связать эти базы, чтобы поиск проходил по всем базам одновременно, т.е. на одной поисковой странице. В справке правда указана команда dbfDefineAlias, но непонятно, как она работает.
Code
dbfDefineAlias "[PubDir]sample.dbf" "base"

dbfOpen "base" ""

Как я понял создаётся одна база, но как тогда быть с различиями в формах.

Добавлено (09 Май 2010, 11:49)
---------------------------------------------
И ещё, как быть с идентичными полями в формах, так как невозможно назначить 2 одинаковых имени, а один из критериумов поиска должен относиться именно к этому полю, где у меня фиксированный набор значений :(

 
СообщениеВсем привет.
Создал многостраничный проект из 5 неидентичных форм. Для каждой формы создана своя база данных.
Вопрос вот в чём, каким образом связать эти базы, чтобы поиск проходил по всем базам одновременно, т.е. на одной поисковой странице. В справке правда указана команда dbfDefineAlias, но непонятно, как она работает.
Code
dbfDefineAlias "[PubDir]sample.dbf" "base"

dbfOpen "base" ""

Как я понял создаётся одна база, но как тогда быть с различиями в формах.

Добавлено (09 Май 2010, 11:49)
---------------------------------------------
И ещё, как быть с идентичными полями в формах, так как невозможно назначить 2 одинаковых имени, а один из критериумов поиска должен относиться именно к этому полю, где у меня фиксированный набор значений :(


Автор - Artex
Дата добавления - 09 Мая 2010 в 11:49
mishemДата: Вт, 11 Мая 2010, 08:42 | Сообщение # 250
Эксперт форума
Quote (Artex)
Как я понял создаётся одна база,

Не совсем правильно поняли. Вы сначала создаете базЫ. Допустим, База1, База2. До конца я с этим Алиасом не разобрался, но объясню как я понимаю. Может быть и не верно. Так вот, В Базе1, создаете поля. Поле1, Поле2. Если собираетесь связать базы между собой, то Во второй базе нельзя присваивать имена, такие же как в первой. Тоесть можно Поле3, Поле4, но нельзя Поле1, Поле2. Объясню почему. После создания базы, получается к примеру База1.Поле1 База2.Поле3После присвоения псевдонима получится Alias.Поле1 где Alias имя псевдонима, Alias.Поле3. Если же присвоить одинаковые имена полей, то получится конфликт.
Перед тем как открыть базу вызывается команда
dbfDefineAlias "[PubDir]База1.dbf" "Alias"
dbfOpen "Alias" ""

dbfDefineAlias "[PubDir]База2.dbf" "Alias"
dbfOpen "Alias" ""

Думаю что так, надо пробовать.
Но нет времени. Попробуйте, потом расскажите. ;)

Добавлено (11 Май 2010, 08:42)
---------------------------------------------
Artex, А вообще, лучше пример, что вы делаете. Сейчас перечитал ваш вопрос, и совсем по другому его понимаю. :D Что бы провести поиск по всем базам и вывести на одной странице, совсем не обязательно использовать Alias. Есть еще импорт и экспорт. ;) Все найденые записи экспортировать в один файл, потом импортировать в файл базы.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Quote (Artex)
Как я понял создаётся одна база,

Не совсем правильно поняли. Вы сначала создаете базЫ. Допустим, База1, База2. До конца я с этим Алиасом не разобрался, но объясню как я понимаю. Может быть и не верно. Так вот, В Базе1, создаете поля. Поле1, Поле2. Если собираетесь связать базы между собой, то Во второй базе нельзя присваивать имена, такие же как в первой. Тоесть можно Поле3, Поле4, но нельзя Поле1, Поле2. Объясню почему. После создания базы, получается к примеру База1.Поле1 База2.Поле3После присвоения псевдонима получится Alias.Поле1 где Alias имя псевдонима, Alias.Поле3. Если же присвоить одинаковые имена полей, то получится конфликт.
Перед тем как открыть базу вызывается команда
dbfDefineAlias "[PubDir]База1.dbf" "Alias"
dbfOpen "Alias" ""

dbfDefineAlias "[PubDir]База2.dbf" "Alias"
dbfOpen "Alias" ""

Думаю что так, надо пробовать.
Но нет времени. Попробуйте, потом расскажите. ;)

Добавлено (11 Май 2010, 08:42)
---------------------------------------------
Artex, А вообще, лучше пример, что вы делаете. Сейчас перечитал ваш вопрос, и совсем по другому его понимаю. :D Что бы провести поиск по всем базам и вывести на одной странице, совсем не обязательно использовать Alias. Есть еще импорт и экспорт. ;) Все найденые записи экспортировать в один файл, потом импортировать в файл базы.


Автор - mishem
Дата добавления - 11 Мая 2010 в 08:42
Alex3AДата: Вт, 11 Мая 2010, 13:02 | Сообщение # 251
Друг клуба ММВ
Quote (Artex)
Вопрос вот в чём, каким образом связать эти базы, чтобы поиск проходил по всем базам одновременно

ПОСЛЕДОВАТЕЛЬНО!
Открыл одну базу, нашел, вторую...потом вывел результаты куда надо.
На сколько энтот ваш плагин поддерживает SQL не знаю, но раз вы уж взялись за бд
то хотя бы получить элементарные понятия об SQL вам не помешает.
Что такое ассоциации, объединения, связанные базы данных и прочая.
К примеру, не понятна нужда Artex, что он хочет, провести поиск с одним и тем
же условием по всех базах, или в условиях поиска задействованы поля из разных баз.
И вообще, как то у вас странно, я к примеру, сначала составляю алгоритм работы, а уж
затем ищу приемлимый механизм для реализации, но не наоборот.
 
Сообщение
Quote (Artex)
Вопрос вот в чём, каким образом связать эти базы, чтобы поиск проходил по всем базам одновременно

ПОСЛЕДОВАТЕЛЬНО!
Открыл одну базу, нашел, вторую...потом вывел результаты куда надо.
На сколько энтот ваш плагин поддерживает SQL не знаю, но раз вы уж взялись за бд
то хотя бы получить элементарные понятия об SQL вам не помешает.
Что такое ассоциации, объединения, связанные базы данных и прочая.
К примеру, не понятна нужда Artex, что он хочет, провести поиск с одним и тем
же условием по всех базах, или в условиях поиска задействованы поля из разных баз.
И вообще, как то у вас странно, я к примеру, сначала составляю алгоритм работы, а уж
затем ищу приемлимый механизм для реализации, но не наоборот.

Автор - Alex3A
Дата добавления - 11 Мая 2010 в 13:02
ArtexДата: Вт, 11 Мая 2010, 22:16 | Сообщение # 252
Новичок
mishem, Буду экспериментировать, посмотрю что получится

Quote (Alex3A)
И вообще, как то у вас странно, я к примеру, сначала составляю алгоритм работы, а уж
затем ищу приемлемый механизм для реализации, но не наоборот.

алгоритм работы такой, ввод в разные формы данных по радиоаппаратуре и компьютерной технике, где основными полями являются данные пользователя, тип техники серийный номер и т.д. ряд из них повторяется в разных базах Затем при поиске необходимо вывести данные по одному из критериев из разных баз.
Сейчас я создал отдельную базу на каждую форму, но вот связать их - увы
 
Сообщениеmishem, Буду экспериментировать, посмотрю что получится

Quote (Alex3A)
И вообще, как то у вас странно, я к примеру, сначала составляю алгоритм работы, а уж
затем ищу приемлемый механизм для реализации, но не наоборот.

алгоритм работы такой, ввод в разные формы данных по радиоаппаратуре и компьютерной технике, где основными полями являются данные пользователя, тип техники серийный номер и т.д. ряд из них повторяется в разных базах Затем при поиске необходимо вывести данные по одному из критериев из разных баз.
Сейчас я создал отдельную базу на каждую форму, но вот связать их - увы

Автор - Artex
Дата добавления - 11 Мая 2010 в 22:16
Alex3AДата: Ср, 12 Мая 2010, 01:27 | Сообщение # 253
Друг клуба ММВ
Quote (Artex)
Сейчас я создал отдельную базу на каждую форму, но вот связать их - увы

Опять ты не понял вопроса, ладно растолкую.
Есть связанные данные, они находятся в разных таблицах но описывают одно понятие,
и поисковый запрос строится с учетом этого. Пример найти в таблицах 2 и 3 все записи
цена которых 5руб, которые покупал товарищ по фамилии некто, описание которого находятся в таблице 1. В таблице 1 имя фамилия адрес... и номер покупателя, в таблицах 2 и 3 много всякой чихни, в том числе и номер покупателя. Вот подобные построения и являются связанными. Другое дело поиск по одному и тому же условию
в нескольких таблицах, запросил одну, сохранил ответ, вторую, добавил к предидущему,
это есть объединение.
Еще раз повторяю, ну не знаю я работает ли сей плугин с sql, насколько мне известно,
дбф формат не поддерживает его, возможно адо одбс имеет какую поддерку.
(sql это язык запросов к базам данных) Возможно ты выбрал не то что тебе надо,
к примеру mysql поддерживает sql в полном объеме, даже с транзакциями.
В принципе, любой сложный запрос может быть разбит на ряд простых запросов.
mishem, алиасы и псевдонимы энто разные вещи, алиас это так сказать,
коробка с базами а псевдоним это просто другое имя чего либо, к примеру
есть такой матюк as - База1.Поле1 as x1 База2.Поле1 as x2 и тому подобное,
и не только, там может фигурировать и некий результат, к примеру сумма чего
либо. Ну эт так, вообще, а на деле, хрен его, в конкретном случае, знает. :D
Artex, запрос к базе данных содержит в себе вполне понятный любому человеку
алгоритм, а ты дал такое его описание, что даже человек его не поймет, а уж куда той
базе данных.

Добавлено (12 Май 2010, 00:30)
---------------------------------------------
Artex, хоть алиас то и есть псевдоним, ну дословно, но в основном это интерпритируется на уровне баз, для их объединения в общую структуру, а вся остальная
мелочь псевдонимы.

Добавлено (12 Май 2010, 01:27)
---------------------------------------------
Посмотрел NeoBookDB Action Command Reference,
понятие алиас тут как псевдоним базы данных, dbfDefineAlias "[PubDir]sample.dbf" "AddressBook" где "[PubDir]sample.dbf это путь и имя базы,
а AddressBook это ее псевдоним, любое понравившееся имя, объединение баз пока
не нашел, запрсы обладают некоторыми возможностями, сравнения, и операций и и или,
интересны dbfVarToRecord и dbfRecordToVar, предположительно передача текущей
записи из базы в переменную и наоборот. Типа выставил нужный номер записи, и считал в переменную все поля махом. Есть и матч, в общем довольно неплохо для
баз дбф, на подавляющее число нужд вполне хватит того что есть, с головой :D
Да и извращений всяких в асортименте.
Запрос идет только к одной таблице , она же база данных, если вдруг сработает
ухищрение типа описанного mishem, энто оч хорошо, но маловероятно.
Если бы такое было возможно, то энто бы описали обязательно, ибо фича весьма полезная.
В дбф база это таблица, в аксесе база это кучка таблиц+хрен знает какой код, формы там, запросы и проч. Все вроде описано нормально и понятно, вам с головой этого хватит. Запрос составляется типа так найти записи в которых поле х1=чему то и поле
х3>чегото или поле х5 не равно чему то.( х1=24 and x3>5 or x5=ok)

 
Сообщение
Quote (Artex)
Сейчас я создал отдельную базу на каждую форму, но вот связать их - увы

Опять ты не понял вопроса, ладно растолкую.
Есть связанные данные, они находятся в разных таблицах но описывают одно понятие,
и поисковый запрос строится с учетом этого. Пример найти в таблицах 2 и 3 все записи
цена которых 5руб, которые покупал товарищ по фамилии некто, описание которого находятся в таблице 1. В таблице 1 имя фамилия адрес... и номер покупателя, в таблицах 2 и 3 много всякой чихни, в том числе и номер покупателя. Вот подобные построения и являются связанными. Другое дело поиск по одному и тому же условию
в нескольких таблицах, запросил одну, сохранил ответ, вторую, добавил к предидущему,
это есть объединение.
Еще раз повторяю, ну не знаю я работает ли сей плугин с sql, насколько мне известно,
дбф формат не поддерживает его, возможно адо одбс имеет какую поддерку.
(sql это язык запросов к базам данных) Возможно ты выбрал не то что тебе надо,
к примеру mysql поддерживает sql в полном объеме, даже с транзакциями.
В принципе, любой сложный запрос может быть разбит на ряд простых запросов.
mishem, алиасы и псевдонимы энто разные вещи, алиас это так сказать,
коробка с базами а псевдоним это просто другое имя чего либо, к примеру
есть такой матюк as - База1.Поле1 as x1 База2.Поле1 as x2 и тому подобное,
и не только, там может фигурировать и некий результат, к примеру сумма чего
либо. Ну эт так, вообще, а на деле, хрен его, в конкретном случае, знает. :D
Artex, запрос к базе данных содержит в себе вполне понятный любому человеку
алгоритм, а ты дал такое его описание, что даже человек его не поймет, а уж куда той
базе данных.

Добавлено (12 Май 2010, 00:30)
---------------------------------------------
Artex, хоть алиас то и есть псевдоним, ну дословно, но в основном это интерпритируется на уровне баз, для их объединения в общую структуру, а вся остальная
мелочь псевдонимы.

Добавлено (12 Май 2010, 01:27)
---------------------------------------------
Посмотрел NeoBookDB Action Command Reference,
понятие алиас тут как псевдоним базы данных, dbfDefineAlias "[PubDir]sample.dbf" "AddressBook" где "[PubDir]sample.dbf это путь и имя базы,
а AddressBook это ее псевдоним, любое понравившееся имя, объединение баз пока
не нашел, запрсы обладают некоторыми возможностями, сравнения, и операций и и или,
интересны dbfVarToRecord и dbfRecordToVar, предположительно передача текущей
записи из базы в переменную и наоборот. Типа выставил нужный номер записи, и считал в переменную все поля махом. Есть и матч, в общем довольно неплохо для
баз дбф, на подавляющее число нужд вполне хватит того что есть, с головой :D
Да и извращений всяких в асортименте.
Запрос идет только к одной таблице , она же база данных, если вдруг сработает
ухищрение типа описанного mishem, энто оч хорошо, но маловероятно.
Если бы такое было возможно, то энто бы описали обязательно, ибо фича весьма полезная.
В дбф база это таблица, в аксесе база это кучка таблиц+хрен знает какой код, формы там, запросы и проч. Все вроде описано нормально и понятно, вам с головой этого хватит. Запрос составляется типа так найти записи в которых поле х1=чему то и поле
х3>чегото или поле х5 не равно чему то.( х1=24 and x3>5 or x5=ok)


Автор - Alex3A
Дата добавления - 12 Мая 2010 в 01:27
PeterДата: Ср, 12 Мая 2010, 02:16 | Сообщение # 254
Админ NeoBook
Хоть я и не спец по "базам", но все же вынужден кое-что сказать...
Quote (Alex3A)
ну не знаю я работает ли сей плугин с sql

Значиться так..
В который раз уже приходится озвучивать: бесплатный плагин NeoBookDB может работать только с форматом .dbf!
Pro-версия может и с sql, и со многими другими форматами, но этот плагин платный, и только к самой первой его версии есть рабочий ключик в сети. С момента выхода первой версии плагина прошло почти два (если не три) года, и плагин сильно оброс возможностями, но в наших "советских" условиях применение его весьма проблематично из-за высокой (99 американских рублей) стоимости. Потому говорить можно реально только о бесплатной версии, т.е. о формате dbf!

Давайте "отталкиваться" от этого факта!

Quote (Alex3A)
алиасы и псевдонимы энто разные вещи,

НЕТ!
"Алиасы" и "псевдонимы" это ОДНО И ТО ЖЕ!
Во всяком случае, когда речь идет о плагине NeoBookDB.
Ктати, alias в переводе с английского и есть - кличка, псевдоним.
И в случае с плагином именно такой смысл вкладывался в эту терминологию для обращения из одного и того же скрипта к разным базам!

Quote (Alex3A)
Artex, хоть алиас то и есть псевдоним, ну дословно, но в основном это интерпритируется на уровне баз, для их объединения в общую структуру, а вся остальная
мелочь псевдонимы.

%)
Очень долго думал над этой фразой..
Так ничего и не понял...
scratch
Что же касается алгоритма связанного поиска по разным базам...
Quote (Alex3A)
ПОСЛЕДОВАТЕЛЬНО!
Открыл одну базу, нашел, вторую...потом вывел результаты куда надо.

Да, видимо так...
Алекс, ты спец, тебе - виднее.

Добавлено (12 Май 2010, 01:53)
---------------------------------------------

Quote (Alex3A)
Посмотрел NeoBookDB Action Command Reference,

Ну вот, наконец-то: Алекс начал изучать NB и её плагины!
Может хоть сейчас конструктив "пойдет"? :)

Добавлено (12 Май 2010, 02:01)
---------------------------------------------

Quote (mishem)
Все найденые записи экспортировать в один файл, потом импортировать в файл базы.

Quote (Alex3A)
если вдруг сработает
ухищрение типа описанного mishem, энто оч хорошо, но маловероятно

А почему именно в файл?
Не проще ли использовать переменные, или я чего-то недогоняю?

Добавлено (12 Май 2010, 02:16)
---------------------------------------------

Quote (mishem)
Что бы провести поиск по всем базам и вывести на одной странице, совсем не обязательно использовать Alias.

На всякий случай, из справки к плагину:

Quote
dbfDefineAlias

Назначение:
Определить и присвоить базе данных псевдоним (alias), который затем будет использован в командах NeoBookDB и переменных, связанных с полем базы, вместо, собственно, имени файла базы данных. Как уже говорилось в разделе Разработка приложений с использоваинем Баз данных, при создании или открытии базы NeoBookDB автоматически генерирует переменные для каждого поля базы данных в рамках программы NeoBook. В обычном случае, имя переменной формируется как комбинация имен файла базы и поля, разделенных точкой (.). После исполнения команды "dbfDefineAlias" в этих переменных вместо имени файла базы будет фигурировать псевдоним. Это позволяет создавать приложения, которые можно использовать для вывода информации из нескольких связанных баз данных, включающих идентичные поля, но имеющих различные имена файлов баз. Команда "dbfDefineAlias" может быть вызвана до создания или открытия базы данных.




- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
СообщениеХоть я и не спец по "базам", но все же вынужден кое-что сказать...
Quote (Alex3A)
ну не знаю я работает ли сей плугин с sql

Значиться так..
В который раз уже приходится озвучивать: бесплатный плагин NeoBookDB может работать только с форматом .dbf!
Pro-версия может и с sql, и со многими другими форматами, но этот плагин платный, и только к самой первой его версии есть рабочий ключик в сети. С момента выхода первой версии плагина прошло почти два (если не три) года, и плагин сильно оброс возможностями, но в наших "советских" условиях применение его весьма проблематично из-за высокой (99 американских рублей) стоимости. Потому говорить можно реально только о бесплатной версии, т.е. о формате dbf!

Давайте "отталкиваться" от этого факта!

Quote (Alex3A)
алиасы и псевдонимы энто разные вещи,

НЕТ!
"Алиасы" и "псевдонимы" это ОДНО И ТО ЖЕ!
Во всяком случае, когда речь идет о плагине NeoBookDB.
Ктати, alias в переводе с английского и есть - кличка, псевдоним.
И в случае с плагином именно такой смысл вкладывался в эту терминологию для обращения из одного и того же скрипта к разным базам!

Quote (Alex3A)
Artex, хоть алиас то и есть псевдоним, ну дословно, но в основном это интерпритируется на уровне баз, для их объединения в общую структуру, а вся остальная
мелочь псевдонимы.

%)
Очень долго думал над этой фразой..
Так ничего и не понял...
scratch
Что же касается алгоритма связанного поиска по разным базам...
Quote (Alex3A)
ПОСЛЕДОВАТЕЛЬНО!
Открыл одну базу, нашел, вторую...потом вывел результаты куда надо.

Да, видимо так...
Алекс, ты спец, тебе - виднее.

Добавлено (12 Май 2010, 01:53)
---------------------------------------------

Quote (Alex3A)
Посмотрел NeoBookDB Action Command Reference,

Ну вот, наконец-то: Алекс начал изучать NB и её плагины!
Может хоть сейчас конструктив "пойдет"? :)

Добавлено (12 Май 2010, 02:01)
---------------------------------------------

Quote (mishem)
Все найденые записи экспортировать в один файл, потом импортировать в файл базы.

Quote (Alex3A)
если вдруг сработает
ухищрение типа описанного mishem, энто оч хорошо, но маловероятно

А почему именно в файл?
Не проще ли использовать переменные, или я чего-то недогоняю?

Добавлено (12 Май 2010, 02:16)
---------------------------------------------

Quote (mishem)
Что бы провести поиск по всем базам и вывести на одной странице, совсем не обязательно использовать Alias.

На всякий случай, из справки к плагину:

Quote
dbfDefineAlias

Назначение:
Определить и присвоить базе данных псевдоним (alias), который затем будет использован в командах NeoBookDB и переменных, связанных с полем базы, вместо, собственно, имени файла базы данных. Как уже говорилось в разделе Разработка приложений с использоваинем Баз данных, при создании или открытии базы NeoBookDB автоматически генерирует переменные для каждого поля базы данных в рамках программы NeoBook. В обычном случае, имя переменной формируется как комбинация имен файла базы и поля, разделенных точкой (.). После исполнения команды "dbfDefineAlias" в этих переменных вместо имени файла базы будет фигурировать псевдоним. Это позволяет создавать приложения, которые можно использовать для вывода информации из нескольких связанных баз данных, включающих идентичные поля, но имеющих различные имена файлов баз. Команда "dbfDefineAlias" может быть вызвана до создания или открытия базы данных.



Автор - Peter
Дата добавления - 12 Мая 2010 в 02:16
mishemДата: Ср, 12 Мая 2010, 09:02 | Сообщение # 255
Эксперт форума
Quote (Peter)
А почему именно в файл?

О, заметил. :D Торопился, потому так и написал. :D После хотел исправить, решил что не обратят вниманеие, и поймут и так что пожно использовать переменные. :)
Quote (Alex3A)
mishem, алиасы и псевдонимы энто разные вещи

Ну я в этом не знаток, просто привел пример , так как далее следовала команда
Quote (mishem)
dbfDefineAlias "[PubDir]База2.dbf" "Alias"
dbfOpen "Alias" ""

и ты все правильно объяснил
Quote (Alex3A)
а AddressBook это ее псевдоним,

в моем примере получался Alias :D
Quote (Alex3A)
Запрос идет только к одной таблице , она же база данных, если вдруг сработает
ухищрение типа описанного mishem, энто оч хорошо, но маловероятно.

Да, в этом плагине получается работать только с одной таблицей. Но есть возможность работать одновременно с несколькими базами(не более 10) По этому "ухищрение" должно получится :D


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Quote (Peter)
А почему именно в файл?

О, заметил. :D Торопился, потому так и написал. :D После хотел исправить, решил что не обратят вниманеие, и поймут и так что пожно использовать переменные. :)
Quote (Alex3A)
mishem, алиасы и псевдонимы энто разные вещи

Ну я в этом не знаток, просто привел пример , так как далее следовала команда
Quote (mishem)
dbfDefineAlias "[PubDir]База2.dbf" "Alias"
dbfOpen "Alias" ""

и ты все правильно объяснил
Quote (Alex3A)
а AddressBook это ее псевдоним,

в моем примере получался Alias :D
Quote (Alex3A)
Запрос идет только к одной таблице , она же база данных, если вдруг сработает
ухищрение типа описанного mishem, энто оч хорошо, но маловероятно.

Да, в этом плагине получается работать только с одной таблицей. Но есть возможность работать одновременно с несколькими базами(не более 10) По этому "ухищрение" должно получится :D

Автор - mishem
Дата добавления - 12 Мая 2010 в 09:02
ArtexДата: Ср, 12 Мая 2010, 09:07 | Сообщение # 256
Новичок
Alex3A,
Quote (Alex3A)
В таблице 1 имя фамилия адрес... и номер покупателя, в таблицах 2 и 3 много всякой чихни, в том числе и номер покупателя. Вот подобные построения и являются связанными

значит я просто неправильно высказался, у меня точнее поиск по одному и тому же условию в разных базах

у меня приблизительно такой код

Code
dbfCreate "[PubDir]base1.dbf" "model,,0|sernum,,0|type,,0" ""
........
dbfCreate "[PubDir]base6.dbf" "model,,0|sernum,,0|type,,0|regnum,,0" ""
dbfDefineAlias "[PubDir]base1.dbf" "all"
........
dbfDefineAlias "[PubDir]base6.dbf" "all"

при запуске проекта создаются отдельные базы, но в данном случае
Code
dbfOpen "[PubDir]all.dbf"
не работает.
Есть ли где вообще пример многоформенных баз, чтобы попытаться самому разобраться в принципах построения кода
 
СообщениеAlex3A,
Quote (Alex3A)
В таблице 1 имя фамилия адрес... и номер покупателя, в таблицах 2 и 3 много всякой чихни, в том числе и номер покупателя. Вот подобные построения и являются связанными

значит я просто неправильно высказался, у меня точнее поиск по одному и тому же условию в разных базах

у меня приблизительно такой код

Code
dbfCreate "[PubDir]base1.dbf" "model,,0|sernum,,0|type,,0" ""
........
dbfCreate "[PubDir]base6.dbf" "model,,0|sernum,,0|type,,0|regnum,,0" ""
dbfDefineAlias "[PubDir]base1.dbf" "all"
........
dbfDefineAlias "[PubDir]base6.dbf" "all"

при запуске проекта создаются отдельные базы, но в данном случае
Code
dbfOpen "[PubDir]all.dbf"
не работает.
Есть ли где вообще пример многоформенных баз, чтобы попытаться самому разобраться в принципах построения кода

Автор - Artex
Дата добавления - 12 Мая 2010 в 09:07
mishemДата: Ср, 12 Мая 2010, 09:22 | Сообщение # 257
Эксперт форума
Quote (Alex3A)
Типа выставил нужный номер записи

Вот с этим нужно будет по окуратней. :( У меня наблюдался такой баг, в таблице 300 строк(к примеру) , находит 150(к примеру). Команда dbfPack (Скомпрессировать/Упаковать базу данных и освободить пространство, занимаемое удаленными ранее записями) присутствует постоянно после удаления какой ли бо строки.

Добавлено (12 Май 2010, 09:19)
---------------------------------------------
Artex, Я ж написал, нельзя присваивать одинаковые имена полям. Если же без этого ни как, открывай базы без псевдонима, и проводи поиск сначала в одной базе, потом в другой.

Добавлено (12 Май 2010, 09:22)
---------------------------------------------

Quote (Artex)
dbfOpen "[PubDir]all.dbf"

А откуда это брется? Если ты ее не создавал, как ее можно открыть?


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Quote (Alex3A)
Типа выставил нужный номер записи

Вот с этим нужно будет по окуратней. :( У меня наблюдался такой баг, в таблице 300 строк(к примеру) , находит 150(к примеру). Команда dbfPack (Скомпрессировать/Упаковать базу данных и освободить пространство, занимаемое удаленными ранее записями) присутствует постоянно после удаления какой ли бо строки.

Добавлено (12 Май 2010, 09:19)
---------------------------------------------
Artex, Я ж написал, нельзя присваивать одинаковые имена полям. Если же без этого ни как, открывай базы без псевдонима, и проводи поиск сначала в одной базе, потом в другой.

Добавлено (12 Май 2010, 09:22)
---------------------------------------------

Quote (Artex)
dbfOpen "[PubDir]all.dbf"

А откуда это брется? Если ты ее не создавал, как ее можно открыть?

Автор - mishem
Дата добавления - 12 Мая 2010 в 09:22
ArtexДата: Ср, 12 Мая 2010, 09:24 | Сообщение # 258
Новичок
Quote (mishem)
открывай базы без псевдонима, и проводи поиск сначала в одной базе, потом в другой.
Это самый простой выход из ситуации, в этом случае на каждую базу нужна своя поисковая форма, что приводит к неудобству при переходе между базами и увеличению размера проекта
 
Сообщение
Quote (mishem)
открывай базы без псевдонима, и проводи поиск сначала в одной базе, потом в другой.
Это самый простой выход из ситуации, в этом случае на каждую базу нужна своя поисковая форма, что приводит к неудобству при переходе между базами и увеличению размера проекта

Автор - Artex
Дата добавления - 12 Мая 2010 в 09:24
mishemДата: Ср, 12 Мая 2010, 09:27 | Сообщение # 259
Эксперт форума
Quote (Artex)
Это самый простой выход из ситуации,

Тогда имена полей должны быть разные. model,sernum,regnum, mode2,sernum2,regnum2, иначе я думаю ни как :(


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Quote (Artex)
Это самый простой выход из ситуации,

Тогда имена полей должны быть разные. model,sernum,regnum, mode2,sernum2,regnum2, иначе я думаю ни как :(

Автор - mishem
Дата добавления - 12 Мая 2010 в 09:27
ArtexДата: Ср, 12 Мая 2010, 15:07 | Сообщение # 260
Новичок
mishem, имя объекта у меня не повторяется, или вы имеете ввиду переменные

Добавлено (12 Май 2010, 15:07)
---------------------------------------------
mishem,

Quote (mishem)
А откуда это брется? Если ты ее не создавал, как ее можно открыть?
а dbfDefineAlias не создаёт её
Code
dbfDefineAlias "[PubDir]base1.dbf" "all"
........
dbfDefineAlias "[PubDir]base6.dbf" "all"
или я неправильно понял назначение команды
 
Сообщениеmishem, имя объекта у меня не повторяется, или вы имеете ввиду переменные

Добавлено (12 Май 2010, 15:07)
---------------------------------------------
mishem,

Quote (mishem)
А откуда это брется? Если ты ее не создавал, как ее можно открыть?
а dbfDefineAlias не создаёт её
Code
dbfDefineAlias "[PubDir]base1.dbf" "all"
........
dbfDefineAlias "[PubDir]base6.dbf" "all"
или я неправильно понял назначение команды

Автор - Artex
Дата добавления - 12 Мая 2010 в 15:07
PeterДата: Ср, 12 Мая 2010, 15:28 | Сообщение # 261
Админ NeoBook
Quote (Artex)
или я неправильно понял назначение команды

Когда же мы научимся читать посты и справку?...
:(


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Artex)
или я неправильно понял назначение команды

Когда же мы научимся читать посты и справку?...
:(

Автор - Peter
Дата добавления - 12 Мая 2010 в 15:28
ArtexДата: Ср, 12 Мая 2010, 15:51 | Сообщение # 262
Новичок
Quote (Peter)
Когда же мы научимся читать посты и справку?...

перечитал я их не раз, вот бы ещё пример выполнения данных команд
 
Сообщение
Quote (Peter)
Когда же мы научимся читать посты и справку?...

перечитал я их не раз, вот бы ещё пример выполнения данных команд

Автор - Artex
Дата добавления - 12 Мая 2010 в 15:51
mishemДата: Ср, 12 Мая 2010, 17:40 | Сообщение # 263
Эксперт форума
Quote (mishem)
По этому "ухищрение" должно получится

Не получается :( Две базы слить, (объединить)не получается.Вообще, еще по началу я забросил этот алиас :D Но в принципе, организовать при помощи присвоения псевдонима поиск по нескольким базам с одинаковыми именами полей(столбцов) возможно. И конечно же удобно.Не надо для каждой базы прописывать свой поисковый запрос. Но не удобно то, что перед тем как открыть новый файл, нужно закрыть открытый.
Artex, как открыть файл с псевдонимом
Прикрепления: 2106873.zip (4.1 Kb)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.


Сообщение отредактировано
mishem - Ср, 12 Мая 2010, 17:41
 
Сообщение
Quote (mishem)
По этому "ухищрение" должно получится

Не получается :( Две базы слить, (объединить)не получается.Вообще, еще по началу я забросил этот алиас :D Но в принципе, организовать при помощи присвоения псевдонима поиск по нескольким базам с одинаковыми именами полей(столбцов) возможно. И конечно же удобно.Не надо для каждой базы прописывать свой поисковый запрос. Но не удобно то, что перед тем как открыть новый файл, нужно закрыть открытый.
Artex, как открыть файл с псевдонимом

Автор - mishem
Дата добавления - 12 Мая 2010 в 17:40
ArtexДата: Ср, 12 Мая 2010, 17:57 | Сообщение # 264
Новичок
mishem, теперь вроде понятно dbfDefineAlias я прописывал в Create а нужно в каждую базу отдельно :) Буду экспериментировать.
 
Сообщениеmishem, теперь вроде понятно dbfDefineAlias я прописывал в Create а нужно в каждую базу отдельно :) Буду экспериментировать.

Автор - Artex
Дата добавления - 12 Мая 2010 в 17:57
Alex3AДата: Чт, 13 Мая 2010, 13:06 | Сообщение # 265
Друг клуба ММВ
Quote (Peter)
Ну вот, наконец-то: Алекс начал изучать NB и её плагины!

Да нет, просто просмотрел справку по нем :D
Quote (Artex)
значит я просто неправильно высказался, у меня точнее поиск по одному и тому же условию в разных базах

Ну тогда все делай последовательно, открыл одну базу нашел что надо, потом следующую.
Или это тебя чем то смущает?
Нб мож и медленный, но плагин это вовсе не нб.
Quote (mishem)
Команда dbfPack

Вся суть в том что при удалении или изменении записи в базе она из нее не удаляется,
просто замещается новым вариантом(указатель в базе), это фича предусматривает возможность отката, то есть востановление предидущего значения записи.
Практического применения этого отката я как то не видел. А упаковка удаляет старые записи и переделывает указатели, в результате размер базы уменьшается.
Quote (mishem)
в моем примере получался Alias

Quote (mishem)
Quote (Artex)
dbfOpen "[PubDir]all.dbf"

А откуда это брется? Если ты ее не создавал, как ее можно открыть?


После назначения алиаса, имя файла равнозначно имени алиаса, то есть если была база
all.dbf и назначен алиас "супер" то ее можно открыть двумя способами
dbfOpen "[PubDir]all.dbf" - обратившись к файлу
dbfOpen "супер", - обратившись к алиасу, но не dbfOpen "[PubDir]супер.dbf" ибо
такого файла не существует.
Алиас помогает в работе со связанными базами, к примеру можно составить такой запрос, открыв предварительно несколько баз и назанчив им алиасы - база1.поле1>4 and база2.имя=петя, по идее, даст все строки из база1 в поле поле1 которые больше 4, при условии что их номера в базе база2 в поле имя имеют значения петя.
база1* and база2* дадут содержимое обоих баз.
Плагин сделан на ада одбс, такая универсальная фича мелкософта, акумулирующая работу со всеми видами баз данных. Каждый вид баз имеет свои способы и методы работы, а так же свою архитектуру. К примеру дбф состоит из одного файла содержащего одну таблицу,
аксес содержит файл содержащий не только множество таблиц но и кучу всего, мускул и
мсскюель имеют свои архитектуру и методы. дбф формат не поддерживает непосредственно
sql запросы, но это не значит того что не возможно работать с ним с его помощью.
Делается надстройка которая адаптирует такие работы, сам движок дбф не имеет даже
поиска, только переход на запись н, на следующую, предидущую, первую, последнюю.
Все остальное делают надстройки. Аксесовский движок уже рулит с sql.
Таким образом, мелкософтовая фича является унификатором работ с бд, насколь она
толково сделана судить не будем. В результате, у формата не поддерживающего то или
иное, появляются новые возможности и способы. Все это имеет как достоинства так и недостатки.
Как работать с несколькими базами данных как с одной базой?
Ну, способов немеряно, вернее дело не в базах а в их представлениях.
Способ первый- создать новую базу данных, которая содержит все данные из всех баз, притом в нужной конфигурации, сделать это физически, с записью в файл. Второй способ
сделать то же самое но в памяти, третий сделать только представление группы баз,
то есть ссылки на все базы объединяются в нужной конфигурации и представляются как
одна база. Все эти вещи вы можете делать сами, обвязав все своим кодом, под свои нужды. Или какой либо движок это может сделать для вас, но естественно, такие штуки
расчитаны на некую универсальность, порой не давая вам того что вы хотите. В таких
случаях вы обвязывая своим кодом добиваетесь нужного.
Теперь, кроме логики, имеет значение таки вещи как скорость работы, сохранность данных
и прочая нужда. Тут то вы и выбираете подходящий вам движок или формат базы, не все так просто, проектирование баз данных великая наука, и подводных камней немеряно,
не буду вас грузить всякими парадоксами индексами и прочей заумностью.
Что ж касаемо энтого плагина, то он дает вам кучу возможностей, как присущих дбф формату, так и надстроенных мелкими, так и доп фичей сделанных его автором.
Quote (Peter)
Ктати, alias в переводе с английского и есть - кличка, псевдоним.

Так оно и есть, все дело в представлении, в sql есть оператор as энто так же псевдоним, база1.поле3 as "петя", сума(база1.поле3)as "вася", а под алиасом, как то
подразумевается пвсевдонимы верхнего уровня, вот это то я и хотел отметить.
Типа так, создается алиас- контейнер, туда накидываются базы данных, таким образом
мы получаем алиас.база1.таблица2.поле3. Ну конечно это все не применительно к конкретному плагину, а в прочем хрен его знает :D Когда то давно че то подобное я делал, но уж и не помню, ибо с адо одбс предпочитаю не связыватся.
Artex, если плагин позволяет открыть одновременно несколько баз, то тебе не составит труда выполнить запросы к каждой последовательно, скажем в цикле, предварительно открыв их. И пусть тебя это не смущает, была бы возможность представления нескольких баз как одной, то просто то же самое сделал бы за тебя
движок, вся разница в том что он это сделал бы наверное быстрее.
 
Сообщение
Quote (Peter)
Ну вот, наконец-то: Алекс начал изучать NB и её плагины!

Да нет, просто просмотрел справку по нем :D
Quote (Artex)
значит я просто неправильно высказался, у меня точнее поиск по одному и тому же условию в разных базах

Ну тогда все делай последовательно, открыл одну базу нашел что надо, потом следующую.
Или это тебя чем то смущает?
Нб мож и медленный, но плагин это вовсе не нб.
Quote (mishem)
Команда dbfPack

Вся суть в том что при удалении или изменении записи в базе она из нее не удаляется,
просто замещается новым вариантом(указатель в базе), это фича предусматривает возможность отката, то есть востановление предидущего значения записи.
Практического применения этого отката я как то не видел. А упаковка удаляет старые записи и переделывает указатели, в результате размер базы уменьшается.
Quote (mishem)
в моем примере получался Alias

Quote (mishem)
Quote (Artex)
dbfOpen "[PubDir]all.dbf"

А откуда это брется? Если ты ее не создавал, как ее можно открыть?


После назначения алиаса, имя файла равнозначно имени алиаса, то есть если была база
all.dbf и назначен алиас "супер" то ее можно открыть двумя способами
dbfOpen "[PubDir]all.dbf" - обратившись к файлу
dbfOpen "супер", - обратившись к алиасу, но не dbfOpen "[PubDir]супер.dbf" ибо
такого файла не существует.
Алиас помогает в работе со связанными базами, к примеру можно составить такой запрос, открыв предварительно несколько баз и назанчив им алиасы - база1.поле1>4 and база2.имя=петя, по идее, даст все строки из база1 в поле поле1 которые больше 4, при условии что их номера в базе база2 в поле имя имеют значения петя.
база1* and база2* дадут содержимое обоих баз.
Плагин сделан на ада одбс, такая универсальная фича мелкософта, акумулирующая работу со всеми видами баз данных. Каждый вид баз имеет свои способы и методы работы, а так же свою архитектуру. К примеру дбф состоит из одного файла содержащего одну таблицу,
аксес содержит файл содержащий не только множество таблиц но и кучу всего, мускул и
мсскюель имеют свои архитектуру и методы. дбф формат не поддерживает непосредственно
sql запросы, но это не значит того что не возможно работать с ним с его помощью.
Делается надстройка которая адаптирует такие работы, сам движок дбф не имеет даже
поиска, только переход на запись н, на следующую, предидущую, первую, последнюю.
Все остальное делают надстройки. Аксесовский движок уже рулит с sql.
Таким образом, мелкософтовая фича является унификатором работ с бд, насколь она
толково сделана судить не будем. В результате, у формата не поддерживающего то или
иное, появляются новые возможности и способы. Все это имеет как достоинства так и недостатки.
Как работать с несколькими базами данных как с одной базой?
Ну, способов немеряно, вернее дело не в базах а в их представлениях.
Способ первый- создать новую базу данных, которая содержит все данные из всех баз, притом в нужной конфигурации, сделать это физически, с записью в файл. Второй способ
сделать то же самое но в памяти, третий сделать только представление группы баз,
то есть ссылки на все базы объединяются в нужной конфигурации и представляются как
одна база. Все эти вещи вы можете делать сами, обвязав все своим кодом, под свои нужды. Или какой либо движок это может сделать для вас, но естественно, такие штуки
расчитаны на некую универсальность, порой не давая вам того что вы хотите. В таких
случаях вы обвязывая своим кодом добиваетесь нужного.
Теперь, кроме логики, имеет значение таки вещи как скорость работы, сохранность данных
и прочая нужда. Тут то вы и выбираете подходящий вам движок или формат базы, не все так просто, проектирование баз данных великая наука, и подводных камней немеряно,
не буду вас грузить всякими парадоксами индексами и прочей заумностью.
Что ж касаемо энтого плагина, то он дает вам кучу возможностей, как присущих дбф формату, так и надстроенных мелкими, так и доп фичей сделанных его автором.
Quote (Peter)
Ктати, alias в переводе с английского и есть - кличка, псевдоним.

Так оно и есть, все дело в представлении, в sql есть оператор as энто так же псевдоним, база1.поле3 as "петя", сума(база1.поле3)as "вася", а под алиасом, как то
подразумевается пвсевдонимы верхнего уровня, вот это то я и хотел отметить.
Типа так, создается алиас- контейнер, туда накидываются базы данных, таким образом
мы получаем алиас.база1.таблица2.поле3. Ну конечно это все не применительно к конкретному плагину, а в прочем хрен его знает :D Когда то давно че то подобное я делал, но уж и не помню, ибо с адо одбс предпочитаю не связыватся.
Artex, если плагин позволяет открыть одновременно несколько баз, то тебе не составит труда выполнить запросы к каждой последовательно, скажем в цикле, предварительно открыв их. И пусть тебя это не смущает, была бы возможность представления нескольких баз как одной, то просто то же самое сделал бы за тебя
движок, вся разница в том что он это сделал бы наверное быстрее.

Автор - Alex3A
Дата добавления - 13 Мая 2010 в 13:06
ArtexДата: Чт, 13 Мая 2010, 18:27 | Сообщение # 266
Новичок
Переключение между базами создаёт ряд неудобств, уж наверно проще сделать одну базу, где будут совмещены все поля. Пока что я решил остановиться на этом варианте (время поджимает), а потом всё это создам в FoxPro, уж там то связывать базы проще
 
СообщениеПереключение между базами создаёт ряд неудобств, уж наверно проще сделать одну базу, где будут совмещены все поля. Пока что я решил остановиться на этом варианте (время поджимает), а потом всё это создам в FoxPro, уж там то связывать базы проще

Автор - Artex
Дата добавления - 13 Мая 2010 в 18:27
Alex3AДата: Чт, 13 Мая 2010, 21:28 | Сообщение # 267
Друг клуба ММВ
Quote (Artex)
Переключение между базами создаёт ряд неудобств

А вчем они заключаются?
Неудобно сидеть, или что то чесатся начинает?
Если базы открыты, то смена базы является просто сменой указателя.
Надо смотреть на логику работы и скорость того иль иного, а не на кажущуюся
корявость кода.
 
Сообщение
Quote (Artex)
Переключение между базами создаёт ряд неудобств

А вчем они заключаются?
Неудобно сидеть, или что то чесатся начинает?
Если базы открыты, то смена базы является просто сменой указателя.
Надо смотреть на логику работы и скорость того иль иного, а не на кажущуюся
корявость кода.

Автор - Alex3A
Дата добавления - 13 Мая 2010 в 21:28
ArtexДата: Чт, 13 Мая 2010, 23:48 | Сообщение # 268
Новичок
Quote (Alex3A)
А вчем они заключаются?
а как насчет отдельного поискового запроса на каждую базу
 
Сообщение
Quote (Alex3A)
А вчем они заключаются?
а как насчет отдельного поискового запроса на каждую базу

Автор - Artex
Дата добавления - 13 Мая 2010 в 23:48
Alex3AДата: Пт, 14 Мая 2010, 01:57 | Сообщение # 269
Друг клуба ММВ
Artex, а что тут сложного?
если лень писать многа строк, сделай это в цикле, да и отдельный то запрос не нужен,
просто переписывай имя базы.
Катит ли такой синтаксис dbfQuery "[bazaname]" "[zapros]"

 
СообщениеArtex, а что тут сложного?
если лень писать многа строк, сделай это в цикле, да и отдельный то запрос не нужен,
просто переписывай имя базы.
Катит ли такой синтаксис dbfQuery "[bazaname]" "[zapros]"


Автор - Alex3A
Дата добавления - 14 Мая 2010 в 01:57
PeterДата: Пт, 14 Мая 2010, 02:30 | Сообщение # 270
Админ NeoBook


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение

Автор - Peter
Дата добавления - 14 Мая 2010 в 02:30
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Вопрос по Базе данных
Поиск: