1.Помогите примером как переписать содержимое таблицы в бд sqlite обязательно с int primary key. Таблица в MTstrТЫ. Не могу никак найти поиском
2.Предположим что таблица в БД заполнена строками, а у меня в MTstrТЫ те же самые строки (возможно в другом порядке), но с другими значениями нескольких ячеек, каким образом мне заменить эти значения в БД? Ну, тоесть к примеру в БД строка " шпала 1 1 1 " а в таблице эта строка "шпала 2 3 4" и таких строк множество. Каким образом переписать таблицу БД чтоб значения поменялись в нужных строках (надеюсь понятно объяснил). Два дня уже голову ломаю, так ничего не придумал.
3. Таблица импортируется из EXEL. Как мне сделать выборку колонок? То есть у меня в БД есть колонки наименование, колличество и т.д. Как мне сделать настройку чтоб скажем значения из столбца "тест" в MTstrТЫ записывалось в колонку бд "колличество" и т.д.
Этот топик читают: Гость
|
Ответов: 257
Рейтинг: -2
|
|||
| карма: 0 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
В примерах, идущих с HiAsm-ом, есть SQLite_Demo.sha
Там посмотри как это всё должно работать. Ничего там сложного нет. Во главу угла нужно ставить не работу с MTStrTbl, а работу с БД, а MTStrTbl - это просто окно в данные БД. Как только это поймёшь, так сразу всё станет очень просто. |
|||
| карма: 25 |
|
|
Ответов: 257
Рейтинг: -2
|
|||
|
да нафига мне sqlite demo? В справке не показано каким образом можно делать выборку полей для записи да и к тому же делать чтоб он изменял значения в заданных строках которые уже есть.
|
|||
| карма: 0 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
там как раз это всё работает. И изменённые поля записывает и всё что хочешь
|
|||
| карма: 25 |
|
|
Ответов: 257
Рейтинг: -2
|
|||
|
И это очень сложно, потому как например колонки таблицы:
цена наименование кол а колонки в БД наименование номер цена кол. Нужно чтоб при нахождении строки где наименование "шпала" он переписывал в нем остальные значения которые есть в таблице (оставляя при этом те значения которых там нет, в прмере- колонка номер), а если такой строки нет - то записывал ее, при этом нужно чтоб была возможность выбора какие колонки в таблице в какие колонки таблицы бд писать, то есть например в примере выше Таблица БД наименование номер цен кол Колонки MTstr 2 null 1 3 и это нужно делать со всеми строками которые есть в mtstr |
|||
| карма: 0 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
Есть точки onLineChange и onBeforeLineChange
mudfactory писал(а): И это очень сложно, потому как например колонки таблицы:
цена наименование кол а колонки в БД наименование номер цена кол. |
|||
| карма: 25 |
|
|
Ответов: 257
Рейтинг: -2
|
|||
|
каждый раз перекрещивать связи в форматстр не вариант. таблицы все разные. Вот по ходу дела вопрос, позже схему выложу что придумал, как прочитать имя столбца в таком варианте -
code_32294.txt какой там разделитель? |
|||
| карма: 0 |
| ||
| файлы: 1 | code_32294.txt [537B] [199] |
|
Разработчик
Ответов: 26324
Рейтинг: 2148
|
|||
|
mudfactory писал(а): какой там разделитель? |
|||
| карма: 22 |
|
|
Ответов: 257
Рейтинг: -2
|
|||
|
спасибо, уже нашел. Еще вопрос - допустим у меня в БД строка с колонками:
1 2 3 4 5 как мне сделать запрос чтоб записывались только значения 1 3 5, ну например колонки в БД Имя фамилия отчество Мне нужно чтоб записалось так Имя фамилия отчество Вася (тут ничего не переписываем) Петров Все это с помощью форматстр. если insert or replace value (%1,%2,%3) и второе значение оставит пустым, то оно перепишется на пустое, а нужно чтоб не менялось |
|||
| карма: 0 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
mudfactory писал(а): допустим у меня в БД строка с колонками:
1 2 3 4 5 Если id строки (то, которое INTEGER PRIMARY KEY) в таблице нет, то применяется |
|||
| карма: 25 |
|
|
Ответов: 257
Рейтинг: -2
|
|||
|
Tad, подскажи, а как сделать если колонки нельзя определить заранее - у меня есть механизм, который в результате действий пользователя формирует запрос insert or replace values ('','','2','','3','4',); и т.д. То есть значения подставляются в зависимости от сформированой маски пользователем.
code_32298.txt ------------ Дoбавленo в 18.48: дальше, когда начинется перебор строки, программа должна искать строку в базе где наименование=значению наименования строки из таблицы и номер= значению номера в строке из таблицы, если такая строка находится, то она загружиется в поля (или не загружается), в общем если находится тогда в ней переписываютс только те значения что были заданы изначально в маске (см в примере настроку столбцов), а если строка не находится, то тогда она записывается с новым integer. Вот на этом застрял ------------ Дoбавленo в 18.54: в моем варианте получается если при нахождении строки выводить все колонки в ячейки памяти, а потом загружать туда же значения той же строки из таблицы, то так как там уже маска сформирована - половина нужных колонок будет перезаписываться пустыми значениями если делать replace. Как можно это исправить, не городя еще одну пирамиду ячкке памяти и форматстр? |
|||
| карма: 0 |
| ||
| файлы: 1 | code_32298.txt [13.5KB] [222] |
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
Ещё раз повторю
Tad писал(а): В примерах, идущих с HiAsm-ом, есть SQLite_Demo.shaИ зря ты mudfactory писал(а): да нафига мне sqlite demo? |
|||
| карма: 25 |
|
|
Ответов: 257
Рейтинг: -2
|
|||
|
я ничего там не могу понять в этих двух вложеных схемах. Можешь объяснить доступно, опираясь на мой конкретны пример, который я выложил? Мне нужно чтоб после загрузки таблицы из exel (готово), пользователь выбирал, в какие колонки что писать ( готово, но не подходит), далее чтоб таблица перегонялась в БД, при этом если в БД есть строка с таким же наименованием и номером, то в нее нужно записать выбранные значения из такой же строки в таблице, не меняя остальный ячейки, а если такого наименования и номера нет - то строка записывается новая, опять же импользуя маску, заданную пользователем куда и что писать.
------------ Дoбавленo в 10.16: Tad писал(а): UPDATE <имя таблицы> SET <имя колонки> = "Николаевич" WHERE id=%1;или REPLACE <имя таблицы>(id,<имя колонки>) values(%1,"Николаевич") ячейки id, name, nomer, kol забиваются запросом insert or update into table (id,%2) values (%3). при следующей перезаписи, нужно чтоб менялись значения в этих же колонках (id,%2)на значения которые тоже через форматстр подаются (%3), а остальные ячейки не затирались. Как реализовать? update c этим синтаксисом не работает. |
|||
| карма: 0 |
|
13



Поиск
Друзья
Администрация