169 похожих чатов

Нахера ему для этого книгу читать?

41 ответов

61 просмотр

Потому что она учит "определяться". Учит, что будет важно в одних случаях, что в других, и что вообще за случаи бывают.

Hemul-GM Автор вопроса
Arioch The
Потому что она учит "определяться". Учит, что буд...

Т.е. по-твоему, если человек пишет вопросик в чатик для определения, ему прям зайдет такой вариант как "иди сам определись, вот книга"?

Hemul GM
Т.е. по-твоему, если человек пишет вопросик в чати...

Можешь поработать аналитиком. Вытащить из него все осознанные или неосознанные требования к программе и к программисту, и на основании этого сделать первичное ТЗ. Только... Не будешь, и никто не будет. Поэтому ответ будет типа "в этом сезоне моден постгресс с бахромой" или "я люблю Майкрософт, у нас это семейное" А вот как человеку разобраться какие вообще перед собой вопросы ставить, с какой стороны вообще подходить - да, хорошая книжка того стоит

Hemul GM
Т.е. по-твоему, если человек пишет вопросик в чати...

То есть по твоему чайнику в чате нельзя говорить "иди определись", так? Вот нельзя и все? А как же тогда быть с https://t.me/Delphi_Lazarus/291092 ? #чотаржу Я хотя бы послал в конкретный текст, который учит определяться, а ты просто послал :)) д

А
Дай человеку рыбу, удочку и т.д.😁

Вот я и дал хорошую удочку

Hemul-GM Автор вопроса
Arioch The
То есть по твоему чайнику в чате нельзя говорить "...

Где я послал? Я задал конкретный вопрос, на который он ответит и получит результат

Hemul GM
Где я послал? Я задал конкретный вопрос, на которы...

"Определись, что тебе нужно от бд" Ага, чайник сразу все понял. И нет, даже для локальной кроме sqlite есть ещё Firebird embedded, если лезть вверх по функционалу SQL, а также есть куча разных nosql начиная с dbf и xml

Hemul-GM Автор вопроса
Arioch The
Вот я и дал хорошую удочку

Ты ему книгу дал "как ловить рыбу", а не удочку

Hemul GM
Ты ему книгу дал "как ловить рыбу", а не удочку

Пусть так. Причём внутри описано какие удочки бывают и на что влияет выбор.

Hemul-GM Автор вопроса
Hemul GM
Ну да и прочтет там про старьё из 2000х

И это в данном случае хорошо. Не будет соблазна вместо понимания темы утыкаться в мелкие блёстки.

Hemul-GM Автор вопроса
Arioch The
И это в данном случае хорошо. Не будет соблазна вм...

Это книга о делфи3! В книге не будет ни слова о современных БД для сравнения. Не будет обсуждения современных требований к БД и т.д. Ни даже актуальных способов работы с БД в Делфи

Hemul GM
Это книга о делфи3! В книге не будет ни слова о со...

А такая книга есть, чтобы для полного новичка и чтобы все варианты? И чтобы именно обсуждения подходов, а не перепечатке рекламы последних версий Oracle или mssql? ...и если будет, оно будет про коммерческую delphi xe12, а не про Лазарь.

Arioch The
Можешь поработать аналитиком. Вытащить из него все...

В продолжении темы. Предпологается однопользовательская приложение для работы на одном компе. Но есть нюанс. База должна быть разбитов на две части. В первой - справочники, каталоги. Во второй - текущий проект, где выполняются расчеты. Первая база в единственном числе, вторая может существовать в множественном числе, в зависимости от количества проектов. Как я уже понял, если и первая и вторая база находится на одном компе то подойдёт SQLite. Во втором случае, если первая база находится на сервере, и с ней работают несколько пользователей со своих компов, то лучше применение FB.

Владимир
В продолжении темы. Предпологается однопользовател...

Когда у тебя справочники в одной базе а данные в другой - это лишает тебя возможности делать в запросах join данных со справочниками. Может быть неудобно, придется собирать все это на клиенте, вместо того что бы реализовать в запросе. Рассмотри вариант когда справочники импортируются в базу с данными. Это вызовет необходимость периодически импортировать данные, и увеличит занимаемое справочниками место в N раз, по количеству проектов, но зато появится возможность писать эффективные запросы (впрочем, неизвестно, нужно ли это в твоем случае) и работать с данными автономно при отсутствии связи с базой справочников.

Владимир Аксенов
Когда у тебя справочники в одной базе а данные в д...

Извиняюсь. Но ведь join к другой базе можно, я делала. MsSql

Владимир Аксенов
FB не умеет. Про SQLite не знаю.

Обновите свои знания. Firebird умеет. А Sqlite можно научить при помощи TFDLocalSQL.

Владимир Аксенов
С какой версии?

https://www.firebirdsql.su/doku.php?id=execute_statement

Nik
https://www.firebirdsql.su/doku.php?id=execute_sta...

EXECUTE STATEMENT нельзя вставить в секцию JOIN. Можно завернуть EXECUTE STATEMENT внутрь селективной процедуры и джойнить уже с ней. Ну и там же написано что: EXECUTE STATEMENT потенциально опасен: 1. Не делается никакой проверки запроса на выполнения. Так же не может быть проверен результат запроса и успешность его выполнения. 2. Не может быть выполнена проверка зависимостей в случае выполнения DML-оператора для гарантии того, что объекты, указанные в строке SQL операторов не удаляются из базы данных или не изменяются таким образом, который нарушит функционирование вашей задачи. Например, допускается выполнение команды DROP TABLE для таблицы, которая используется в откомпилированных процедурах или триггерах, что повлечет за собой сбой их работы. 3. В основном операции с EXECUTE STATEMENT более медленые так как не делается подготовка(prepared) запроса и, соответствено, подготовка происходит каждый раз при выполнении. Т.е. по сравнению с select - это медленнее, с кучей ограничений, с отсутствующей или усложненной диагностикой ошибок. Имхо, этот механизм - не для того что бы джойниться со справочниками.

Владимир Аксенов
EXECUTE STATEMENT нельзя вставить в секцию JOIN. М...

это механизм для составления запроса внутри скрипта (или хранимки) и его выполнения

Iluha Companets
это механизм для составления запроса внутри скрипт...

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

Владимир
В продолжении темы. Предпологается однопользовател...

Справочники могут меняться пользователями? Или ты их формируешь при сборке программы один раз навсегда? Подумай над ещё одним вариантом. У тебя в программе внутри ресурсов (.rc или .DFM) ледит заготовка БД (в случае Firebird 2.5 embedded - упакованныц бэкап, .fbk.zip; в случае sqlite наверное есть что-то подобное тоже). Тебе ведь все равно при создании "нового документа" структуру БД создавать. Самый простой способ - тупо брать заготовку БД, которую ты сделал как часть программы, и разворачивать в новую БД. Но тогда в неё можно не только "таблицы да индексы" заложить но и те самые справочники. Пусть в каждом "документе" будет копия справочников. Для расчётов внутри SQL средствами SQL это проще, чем раздельные БД.

Iluha Companets
лень читать, базы на одном сервере?

Я не понял. Думаю что автор и сам этого не знает т.к. пока у него ничего нет. :)

Владимир
В продолжении темы. Предпологается однопользовател...

Если же справочники делать отдельно, И не нужно чтобы пользователи их постоянно редактировали - я бы справочники оформил как .json.zip или .xml.zip и просто грузил в память при старте программы.

Владимир Аксенов
Я не понял. Думаю что автор и сам этого не знает т...

ну если на одном - то можно одним соединением и обойтись )

Владимир Аксенов
Ну в случае с FB

какая разница, MySQL тоже

Владимир Аксенов
Ну в случае с FB

что у FB входит в понятие "соединение с БД" ?

Владимир Аксенов
EXECUTE STATEMENT нельзя вставить в секцию JOIN. М...

Ты утверждал, что firebird не умеет - умеет. Вопрос удобства использования не поднимался.

Nik
Ты утверждал, что firebird не умеет - умеет. Вопро...

Если придираться к словам - то почитай на что я отвечал. Катерина: Но ведь join к другой базе можно, я делала. MsSql fraks: FB не умеет. Т.е.: 1. Речь была про join 2. В любом случае, так как это умееет делать MS SQL - FB не умеет. EXECUTE STATEMENT - это костыль, опасный, и не для этого.

Владимир Аксенов
Если придираться к словам - то почитай на что я от...

MS SQL стандартом не является. Тем более не рекомендован к использованию на территории РФ

Arioch The
Если же справочники делать отдельно, И не нужно чт...

Есть еще вариант обмениваться файлом сразу в формате SQLite и не заниматься парсингом. А может быть, если данные по проекту так же будут в формате SQLite то может быть энтот SQLite умеет делать джойны между разными базами. Он умеет весьма неожиданные вещи :)

Владимир Аксенов
Есть еще вариант обмениваться файлом сразу в форма...

Зачем обмениваться? Чем это лучше "спрятать готовую БД внутри exe" и какие сценарии разрешит?

Arioch The
Зачем обмениваться? Чем это лучше "спрятать готову...

Автор вопроса пропал, детали можно выяснить только у него. Прятать справочники внутрь exe - это означает что при изменении справочников нужно обновлять программу. В моем понимании - справочники обновляются, частота может быть разной, но нулевой - в исключительных случаях.

Владимир Аксенов
Ну типа да, но это так же единственный способ чере...

Запросы у удаленным серверам практически одиннаково хреново работают во всех серверах. Оракл позволяет творить что угодно,в тч join, но и там косяк...удаленное соединение валидируется только в момент использования. Те отказ в самый неподходящий момент.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта