|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Что-то где-то изменилось, не могу понять. Перестало вставлять записи пока не закроешь соединение. Вернее вставляю, но их не видят другие программы, кроме моей пока не закрою или не выйду. Ничего такого вроде не менял.. да и не знаю где. А если вставить несколько записей - виснет пока не закрою соединение.. Куда смотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 05:28 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Похоже на не закрытую транзакцию. Почитай хэлп про транзакции . ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 07:10 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Таблички ZAKAZ (KOD,KODTOW,KODSTRAN,CENA,KOLVO), TOWAR(KOD,NAIM), STRANA(KOD,NAIM) Хочу получить табличную часть документа с полями из 2 х других таблиц. Что-то типа: Select BB.NAIM,AA.CENA,AA.KOLVO,CC.NAIM AS STRANA; from ZAKAZ AA,TOWAR BB, STRANA CC WHERE ... тут связи и в фоксе это работало так. Теперь надо это как-то делать через Left Join . Ни как не въеду в синтаксис.. таких запросов. Помогите. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2018, 09:48 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Образец Код: sql 1.
равносильно Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2018, 09:59 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Dima TОбразец Код: sql 1.
равносильно Код: sql 1.
Спасибо огромное. А если таблиц 3 и более ? Синтаксис не понятен мне. Пишет ошибка, а какая не пойму. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 07:01 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Три таблицы Код: sql 1.
Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 07:20 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
[quot MaestroEv]Dima TОбразец Спасибо огромное. А если таблиц 3 и более ? Синтаксис не понятен мне. Пишет ошибка, а какая не пойму. В инете куча материала по SQL Найдите, прочтите. Помимо inner join (=where) есть еще разные виды соединений))) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 11:43 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 07:12 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Новая беда!!! В фоксе для получения уникального ключа использовал эту функцию: ********************* DECLARE INTEGER CoCreateGuid IN Ole32.dll STRING @lcGUIDStruc *** LOCAL cStrucGUID,cGUID,nSize cStrucGUID=SPACE(16) IF CoCreateGuid(@cStrucGUID) # 0 RETURN "" ENDIF RETURN cStrucGUID ******************** Она возвращает уникальную строку 16 символов (абракадабра). В фоксе все отлично. Но ! При попытке эту запись сохранить в MySQL - данные в этих полях меняются.. :( Это видно даже визуально. ************************** Генерирую строку INSERT INTO ... VALUES.. Для этого данные беру в кавычки или апострофы, если таковых нет внутри строки. Ошибку не дает, строка вставляется в MySQL, но данные в таких полях совершенно не те! ************************* Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 08:44 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
MaestroEv, Вот не понятно. работает с мускулом, а гуид генерите фоксом? Каков в этом смысл? Отдайте это мускулу. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 09:36 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Надо сначала гуид в строку конвертировать Попробуй так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 09:44 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Может есть какая-нибудь настройка или тип или еще что, чтобы MySql просто сохранял все как есть? Меня бы это устроило больше всего. Еще к размышлению... Таблицы перенесенные целиком в MySql содержат все эти поля. И все нормально! Старые данные работают и в полях правильные символы! То есть беда с переносом одной строки! INSERT INTO ... VALUES... Нужно как-то иначе экранировать значение этих полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 12:19 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
asdorMaestroEv, Вот не понятно. работает с мускулом, а гуид генерите фоксом? Каков в этом смысл? Отдайте это мускулу. Математика вся на фоксе и она работает и ее не остановить без существенной потери денег. MySQL - хранилище и то для того, чтобы прикрутить инет магазин сразу к данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 12:21 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Select UUID() AS MyID ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 12:43 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
MaestroEvМожет есть какая-нибудь настройка или тип или еще что, чтобы MySql просто сохранял все как есть? Меня бы это устроило больше всего. Еще к размышлению... Таблицы перенесенные целиком в MySql содержат все эти поля. И все нормально! Старые данные работают и в полях правильные символы! Проблема в том что твой гуид это не строка, а бинарные данные. Для фокса нет разницы что ему вставили в строку, и при сохранении/чтении в/из dbf проблем не будет, но как только ты пытаешься залить это куда-то на сторону (например в MySQL), то сразу начинаются проблемы из-за того что это не строка в общепринятом понимании и там встречаются недопустимые символы. Как вариант сделать под гуид тип поля BLOB MaestroEvТо есть беда с переносом одной строки! INSERT INTO ... VALUES... Нужно как-то иначе экранировать значение этих полей. Для этого есть параметризованные запросы Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 15:18 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
MaestroEvГенерирую строку INSERT INTO ... VALUES.. Для этого данные беру в кавычки или апострофы, если таковых нет внутри строки. Ошибку не дает, строка вставляется в MySQL, но данные в таких полях совершенно не те! ************************* Что делать? 1. бинарные данные, всегда 16 байт, для этого надо использовать тип поля binary(16) 2. чтобы гарантированно без ошибок вставить 16 байтовый бинарник, надо его перевести сначала в hex, а потом сделать вот так INSERT INTO sometable (MyGUID) VALUES (UNHEX("8f0aaf63a93c11e4949700105690993f")) в любом другом случае генерить sql нельзя, и нужно использовать prepared statements в том драйвере, какой есть в используемом языке ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 19:37 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Спасибо всем. Докладываю. ****************** Есть решение - экранирование некоторых символов. Ничего более не менял. Заработало! ***************** FUNCTION STRESC LPARAMETERS M.STR M.str = STRTRAN(M.str, "'", "\'") M.str = STRTRAN(M.str, '"', '\"') M.str = STRTRAN(M.str, '\', '\\') M.str = STRTRAN(M.str, CHR(0), '\x00') M.str = STRTRAN(M.str, CHR(10), '\n') M.str = STRTRAN(M.str, CHR(13), '\r') M.str = STRTRAN(M.str, CHR(26), '\x1A') RETURN M.STR ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 12:09 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Dima TТри таблицы Код: sql 1.
Код: sql 1. 2. 3.
Еще вопрос.. А если с дочерней таблицы надо вытащить несколько разных значений как правильно написать? В основной таблице PSWautor - код на Id автора записи, PSWmodi код на Id модератора записи и так далее. Результат - табличка с именами их.. В фоксе делал так : Select aa.*,naimpolz(aa.PSWautor) as autor,naimpolz(aa.PSWmodi) as modi from dokument aa ... Никаких джоинов - Фокс - лучший язык! Как сделать это теперь? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2018, 06:38 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
MaestroEvВ фоксе делал так : Select aa.*,naimpolz(aa.PSWautor) as autor,naimpolz(aa.PSWmodi) as modi from dokument aa ... Никаких джоинов - Фокс - лучший язык! Как сделать это теперь? Почитал бы уже про SQL. Ничего сложного там нет и работает даже в фоксе. Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2018, 07:25 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Немного напутал, так правильно Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2018, 07:26 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Спасибо огромное, не пинайте :) Не нашел нужных примеров в инете. Там все или простенькое или как-то не так и из-за этого синтаксиса теряю часы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2018, 10:28 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
С Join разобрался. Прикольно. Спасибо. Стало прям приятно программировать. Но вот NULL убрать бы.. Пусть будет пустая строка. Я убираю его уже в самом ГРИД отображении, но может есть способ сразу в настройках MySQl при отсутствии значения в Join втыкать не Null, а пустое поле как в фоксе? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 07:32 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
IFNULL() аналог фоксового NVL() ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 07:40 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
Dima T IFNULL() аналог фоксового NVL() Это придется каждое поле обернуть функцией, что ухудшит читаемость кода.. Есть решения изящней? Устроила бы глобальная настройка MySQL, при которой NULL вообще заменяется сразу на пустое строковое значение. Вопросы усложняются .. :) В фоксе писал так: Select *, KOLVYD(KODDOK,KODTOW) AS KOLVYD,KOLREZ(KODDOK,KODTOW) AS KOLREZ,KOLVOZ(KODDOK,KODTOW) AS KOLVOZ ; where KODDOK=M.KODDOK from PozSce into curs poziciischeta Используя функции в SELECT получал в результате таблицу с рассчитанными итогами из других таблиц.. В функциях обращения к другим таблицам и суммирование по товару по этому же счету. Чем заменить ? Каков синтаксис? Не могу даже в поисковике сформулировать правильно, что я хочу на MySql.. :(( Как это делают на языке далеком от Фокса? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 09:08 |
|
Правильная работа с MySQL
|
|||
---|---|---|---|
#18+
MaestroEvЭто придется каждое поле обернуть функцией, что ухудшит читаемость кода.. Зачем каждое? JOIN (он же INNER JOIN) не даст в результат NULL, кроме того который получен из таблицы. Если надо каждое, то проблема совсем в другом месте. База коряво спроектирована. Если тебе не надо чтобы в базе хранились NULL то откуда они там взялись? MaestroEvЕсть решения изящней? Устроила бы глобальная настройка MySQL, при которой NULL вообще заменяется сразу на пустое строковое значение. Именно такой настройки нет, но есть значение по умолчанию для колонки, задай там по умолчанию '' и замени уже существующие NULL на '' Если все спроектировано правильно, то заменять NULL на '' надо только для тех таблиц, которые присоединяются LEFT/RIGHT/FULL JOIN. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 09:24 |
|
|
start [/forum/topic.php?fid=41&msg=39722640&tid=1581664]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 289ms |
total: | 420ms |
0 / 0 |