Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#1111: 2013-03-23 12:30:01 ЛС | профиль | цитата
А не надо считывать всё. Читать ровно столько, сколько видно на экране.
http://forum.d2h.ru//getfile/30512
Главное понять, что ты работаешь с БД, а табличка на экране - это просто окошко для наблюдения.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 413
Рейтинг: 57
#1112: 2013-03-23 13:07:44 ЛС | профиль | цитата
Tad писал(а):
А не надо считывать всё.

схема хорошая, а главное и под fpc работает.
Если были введены в базу случайно две одинаковые строки, как удалить только одну из них?

карма: 0

0
Ответов: 16884
Рейтинг: 1239
#1113: 2013-03-23 13:36:51 ЛС | профиль | цитата
Poputchik писал(а):
Если были введены в базу случайно две одинаковые строки, как удалить только одну из них?

1. Проверять на повтор перед вводом , чтобы не допускать случайностей.
2. Удалять по id. Если id нет, то удалять по rowid.
3. Если там повторов, как собак, то выполнить блок инструкций:

-- создать таблицу prom по образу исходной и заполнить её неповторяющимися записями
CREATE TABLE prom AS SELECT DISTINCT * FROM исходная;
-- удалить исходную таблицу
DROP TABLE исходная
-- Переименовать prom в "исходная"
ALTER TABLE prom RENAME TO исходная
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 413
Рейтинг: 57
#1114: 2013-03-23 14:14:19 ЛС | профиль | цитата
Tad, Спасибо. Очень помогли!
карма: 0

0
Ответов: 704
Рейтинг: 44
#1115: 2013-04-02 12:49:17 ЛС | профиль | цитата
Добрый день всем! Есть небольшая загвоздка. Скажите пожалуйста уважаемые знатоки! Как поступить в моей ситуации? Есть некая база, в базу загоняются текстовые значение, но проблема в том что размер текста не известен, т.е, может быть 1-но значение а может и 1500. Пример: (Петя) а может быть (Петя,Вася). Теперь, после занесение данных в ячейку, мне нужно сделать выборку. И тут у меня стопор, каким образом можно сделать выборку данных, если не известно какое значение ввел пользователь (Петя или Вася а может и то и другое и.т.д). Т.е Нужно как-то в базе сохранить массив строк, а затем, динамический поиск по их условию. Расскажите пожалуйста, как это делается.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#1116: 2013-04-02 13:51:18 ЛС | профиль | цитата
Kazbek17 писал(а):
размер текста не известен, т.е, может быть 1-но значение а может и 1500
И как эти значения разделяются в тексте ?
Kazbek17 писал(а):
каким образом можно сделать выборку данных, если не известно какое значение ввел пользователь
Русская народная сказка писал(а):
Пойди туда - не знаю куда, принеси то - не знаю что

Kazbek17, непонятно. Конкретизируй.
Вообще-то такие проблемы возникают при неверно спроектированной БД

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 704
Рейтинг: 44
#1117: 2013-04-02 17:45:10 ЛС | профиль | цитата
Есть некий CheckListBox, при выборе из списка значения нужно сохранить в базу, т.е значение можно разделить допустим ; символом. Вот я и спрашиваю если я буду сохранять данные ввиде одной строки т.е Петя;Вася;Федя через символ разделения, то при поиске значения, каким образом я могу добраться до Феди, если строка одна?
Tad писал(а):
Вообще-то такие проблемы возникают при неверно спроектированной БД

База спроектирована правильно, вся проблема и за того, что не известно сколько ячейка будет в себе хранить данных. Меня больше интересует как мне вывести то значение которое находится в этой строке. Tad если не трудно поясните.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#1118: 2013-04-02 18:50:20 ЛС | профиль | цитата
Да понял я - это твои "Исполнители".
1. Не шути с ";" лучше раздели их ",".
2. Если применяешь SQLite.dll из HiAsm, то можно

#pas
SELECT * FROM таблица WHERE колонка LIKE '%Федя%';
------------ Дoбавленo в 18.50:
А я бы создал таблицу

CREATE TABLE [performer](
[iDogovor] Integer,
[idIspol] INTEGER);
и не морочил бы себе ни голову ни .... А в договор вообще исполнителей не писал бы.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Kazbek17
Ответов: 758
Рейтинг: 112
#1119: 2013-04-03 00:44:23 ЛС | профиль | цитата
Kazbek17 писал(а):
Есть некий CheckListBox, при выборе из списка значения нужно сохранить в базу

Предлагаю в базе хранить выбор в виде числа. Двоичный выбор переводиш в число и храниш в базе. Если надо можно проделать обратную операцию для получения выбора.
Вот пример для размышлений
code_30742.txt
карма: 1

0
файлы: 1code_30742.txt [2.9KB] [328]
Ответов: 16884
Рейтинг: 1239
#1120: 2013-04-03 08:54:00 ЛС | профиль | цитата
miver, что это даёт ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 758
Рейтинг: 112
#1121: 2013-04-04 18:58:05 ЛС | профиль | цитата
Tad писал(а):
что это даёт ?
Наверно погорячился. Думал, что будет минимальный размер БД
Зато родилось другое решение
code_30751.txt
карма: 1

0
файлы: 1code_30751.txt [3.3KB] [317]
Ответов: 16884
Рейтинг: 1239
#1122: 2013-04-05 23:36:41 ЛС | профиль | цитата
Честно ? Совсем ничего не понял.
В программах с БД почти всегда все так и работают - с числами.
Есть таблицы "справочников". Есть таблицы рабочие.
Если в справочники пишут, например, фио Автора и его id,
то в таблицу "Каталог книг" пишут название книги и id автора.
Посмотри в Elements.db таблицы elements и groups.

А зачем переворачивать цифры - убей, непойму.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 952
Рейтинг: 4
#1123: 2013-04-10 13:41:40 ЛС | профиль | цитата
Вопрос. В проге стрингтабле, разделитель ;
Если при внесении записи в тексте будет значок " или ' то потом начинаются косяки - в запись невозможно добавить новые данные и т.п.
Ну и если в тексте будет ; то при сохранении данных пойдет смещение.
Как этого избежать? На что заменять эти символы при вводе. Что бы и смотрелось нормально и багов не словить.
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#1124: 2013-04-10 13:52:52 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-21 07:58:23
карма: 0

0
Ответов: 952
Рейтинг: 4
#1125: 2013-04-10 14:01:56 ЛС | профиль | цитата
"," в набираемом тексте у меня встречается постоянно, в каждой записи. Так что не пойдет этот вариант.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)