Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#376: 2010-06-15 17:13:42 ЛС | профиль | цитата
В обед дома гляну (если раньше никто не подскажет.)
------------ Дoбавленo в 16.38:
Chipset писал(а):
НЕОБХОДИМО что бы перед выводом новой группы таблица очищалась.
а что doClear у таблицы не работает ?
------------ Дoбавленo в 17.13:
Вроде так (если я всё правильно понял).

Add(MainForm,2953706,21,105)
{
Width=508
Height=729
link(onCreate,361538:doOpen,[])
}
Add(SQLite_DB,361538,105,119)
{
FileName="test.s3db"
link(onOpen,15046006:doWork1,[])
}
Add(ChildGroupBox,15046006,182,119)
{
link(onEvent1,3977853:doWork1,[])
}
BEGIN_SDK
Add(EditMulti,13220622,21,21)
{
EventCount=2
WorkCount=2
VarCount=2
Width=678
Height=389
link(doWork1,11311027:doQuery,[(91,27)(91,83)])
}
Add(GroupBox,14075530,35,154)
{
Left=14
Top=15
Width=480
Height=405
Color=-16777197
Font=[MS Sans Serif,12,0,16711680,1]
Caption="Материалы"
}
Add(Edit,12690185,126,140)
{
Left=195
Top=380
Width=175
Text=""
}
Add(Label,4098558,98,308)
{
Left=15
Top=330
Width=459
Height=20
Color=-16777197
Font=[MS Sans Serif,12,1,0,1]
WinStyle=1
Caption="Поиск"
}
Add(Label,15978634,55,279)
{
Left=6
Top=350
Width=189
Height=20
Color=-16777197
Font=[MS Sans Serif,12,1,0,1]
WinStyle=1
Caption="Наименование ресурса:
"
}
Add(Edit,15143962,262,32)
{
Left=195
Top=350
Width=265
Text=""
link(onChange,9549963:doMT_FindText,[(318,38)(318,90)])
}
Add(Label,4793360,97,354)
{
Left=6
Top=380
Width=100
Height=20
Color=-16777197
Font=[MS Sans Serif,12,1,0,1]
WinStyle=1
Caption="Код ресурса:"
}
Add(Button,8829586,252,175)
{
Left=390
Top=380
Caption="Очистить"
}
Add(SQLite_DB,361538,77,112)
{
FileName="Data.s3db"
}
Add(SQLite_Query,11311027,203,77)
{
SQL="SELECT * FROM matbaz"
link(onQuery,9549963:doMT_Add,[])
}
Add(StringTableMT,9549963,357,42)
{
Left=5
Top=15
Width=470
Height=315
Color=-16777202
Columns=#6:Код=80|16:Наименование=290|12:Отпускная=80|
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(doMT_Add)
Point(onColumnClick)
Point(ColumnArray)
Point(doMT_FindText)
Point(onMT_FindText)
Point(doSelect)
Point(doMT_FindNext)
Point(Index)
Point(onSelect)
Point(SubItem)
Point(PHandle)
Point(Cell)
link(onClick,10598803:doSplit,[(421,48)(421,119)(350,119)(350,139)])
link(onMT_FindText,9549963:doSelect,[(401,62)(401,80)(345,80)(345,97)])
}
Add(Button,2480071,266,126)
{
Left=405
Top=350
Caption="Поиск"
link(onClick,9549963:doMT_FindNext,[(314,132)(314,104)])
}
Add(StyleXP,4108677,42,378)
{
}
Add(MultiStrData,10598803,364,133)
{
link(Str,9549963:Select,[])
link(onPart1,13220622:onEvent1,[(551,139)(551,27)])
}
END_SDK
Add(ChildGroupBox,3977853,245,119)
{
link(Data1,361538:dbHandle,[(251,107)(291,107)(291,158)(111,158)])
}
BEGIN_SDK
Add(EditMulti,12042882,21,21)
{
WorkCount=1
DataCount=1
Width=818
Height=445
link(doWork1,2766172:doEvent1,[(91,27)(91,48)])
}
Add(GroupBox,11548075,42,203)
{
Left=15
Top=432
Width=480
Height=253
Color=-16777197
Caption="Ресурсы"
}
Add(Button,12303318,91,203)
{
Left=110
Top=225
Width=60
Caption="Удалить"
}
Add(StringTableMT,1896132,385,35)
{
Left=5
Top=15
Width=470
Height=205
Color=-16777202
Name="Ресурсы"
Columns=#6:Код=70|16:Наименование=396|
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(doMT_Add)
Point(onColumnClick)
Point(ColumnArray)
Point(doMT_FindText)
Point(onMT_FindText)
Point(doSelect)
Point(doMT_FindNext)
Point(Index)
}
Add(SQLite_Query,11311027,308,70)
{
link(onQuery,1896132:doMT_Add,[])
link(dbHandle,12042882:Data1,[(314,37)(27,37)])
}
Add(Edit,6071194,154,203)
{
Left=205
Top=230
Width=250
Text=""
}
Add(Hub,2766172,168,42)
{
InCount=2
OutCount=3
link(onEvent1,1896132:doClear,[])
link(onEvent2,16531246:doString,[(214,55)(214,76)])
link(onEvent3,4012110:doCompare,[(204,62)(204,146)])
}
Add(FormatStr,16531246,245,70)
{
Mask="select kodres from matpredst where matpredst.kodpredst="%1""
link(onFString,11311027:doQuery,[])
}
Add(If_else,4012110,385,140)
{
Op2=Integer(0)
link(onTrue,1896132:doAdd,[(429,146)(429,27)(373,27)(373,41)])
link(Op1,1896132:Count,[])
}
END_SDK


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1cleartab.png [2.7KB] [534]
Голосовали:Chipset
Ответов: 186
Рейтинг: 9
#377: 2010-06-16 06:47:54 ЛС | профиль | цитата
Спасибо за помощь.
Работы еще много так что буду беспокоить.
карма: 0

0
Ответов: 704
Рейтинг: 7
#378: 2010-06-28 00:59:18 ЛС | профиль | цитата
Подскажите пожалуйста такой пример: запускаю базу с "PRAGMA case_sensitive_like = true" (это чтоб "LIKE" работал не строго, а по части данных ячейки), а после делаю "delete FROM zavershit WHERE id = '%1';" - удаляется нормально, но не будет ли оно при значении "4" удалять и "4" и "44", и "444"? Пока нет возможности нормально проверить. Поделитесь опытом
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#379: 2010-06-28 01:32:33 ЛС | профиль | цитата
Neo,
PRAGMA case_sensitive_like = boolean;
The default behavior of the LIKE operator is to ignore case for ASCII characters.
Популярно : Этот оператор служит "только для символов" - различать большие и маленькие буквы, притом (помоему) только для английского алфавита. Нужно уточнить.
Ставить условие LIKE для id - это вообще выше моего понимания...
А применять LIKE для DELETE FROM - носить в кармане гранату с выдернутой чекой.
------------ Дoбавленo в 01.29:

SELECT * FROM client WHERE name LIKE '%ля'
Выберет все данные для Коля, Оля, Толя, Николя и так далее. Здесь применение LIKE оправдано.
------------ Дoбавленo в 01.32:
А твоё

delete FROM zavershit WHERE id = '%1';
удалит все id, заканчивающиеся на 1.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 704
Рейтинг: 7
#380: 2010-06-28 01:50:36 ЛС | профиль | цитата
Tad писал(а):
прошу прощения, ввел Вас в заблуждение под '%1' имею в виду данные в форматированной строке, которая составляет запрос. То есть реально это выглядит так для удаления: "delete FROM zavershit WHERE id = '28';", и SELECT * FROM client WHERE name LIKE 'Ан' - для поиска какой ID у всех Ан (пример работает только с "PRAGMA case_sensitive_like = true"). Так вот интересуюсь будет ли работать при этой прагме корректно "delete FROM zavershit WHERE id = '28';", или будет и 280 удалять?

карма: 0

0
Ответов: 16884
Рейтинг: 1239
#381: 2010-06-28 02:10:16 ЛС | профиль | цитата
Neo,
Tad писал(а):
Ставить условие LIKE для id - это вообще выше моего понимания...
Neo писал(а):
SELECT * FROM client WHERE name LIKE 'Ан' - для поиска какой ID у всех Ан
Абсурд. Для поиска какой ID у всех Ан

SELECT id FROM client WHERE name='Ан'
а запрос

SELECT id, name  FROM client WHERE name LIKE 'Ан%'
выведет id и имена всех у которых имя начинается на "Ан" (Антон, Анатолий, Анна, Анфиса и т.д.)

А мнение про DELETE FROM читай выше.



------------ Дoбавленo в 02.10:
Ещё раз повторюсь LIKE только для символов, для цифр LIKE пофиг false или true.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Neo
Разработчик
Ответов: 26113
Рейтинг: 2126
#382: 2010-06-28 02:15:42 ЛС | профиль | цитата
Tad писал(а):
А мнение про DELETE FROM читай выше

Вообще-то, Neo дистанцировался от применения Like в DELETE FROM. И задал еще более "интересный" вопрос, смешав в кучу, и мух, и котлеты
Neo писал(а):
Так вот интересуюсь будет ли работать при этой прагме корректно "delete FROM zavershit WHERE id = '28';", или будет и 280 удалять?

Так вот, "delete FROM zavershit WHERE id = '28';" удалит поле только с id = '28' (странно, почему текстовый id), и ничего более. И где там Like А если нет Like, то к "PRAGMA case_sensitive_like = true" это никакого отношения не имеет



карма: 22

1
Голосовали:Neo
Ответов: 704
Рейтинг: 7
#383: 2010-06-28 02:27:18 ЛС | профиль | цитата
Tad писал(а):
Спасибо, некоторое подчерпнул, но пока применить не могу - мне нужно искать по одному значению, но выводить всю найденную строку, откуда и беру id.
------------ Дoбавленo в 02.22:
nesco писал(а):
странно, почему текстовый id
а какой он должен быть? подскажите, как сделать его (если это принесет + к быстродействию)?
------------ Дoбавленo в 02.25:
nesco писал(а):
И где там Like
в делете его нет, а вот при поиске по этой же базе оно есть Помнится как-то вначале наблюдал странности с = вместо Like, но потом вернулся к Like и не стал выяснять где ошибка.
------------ Дoбавленo в 02.27:
А если поставить "delete FROM zavershit WHERE id Like '28';" при прагме, это аналогично "delete FROM zavershit WHERE id = '28';" ? или оно поудаляет тогда 280?
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#384: 2010-06-28 02:33:29 ЛС | профиль | цитата
Neo писал(а):
а какой он должен быть?

Вообще-то, id делают уникальным целочисленным -- INTEGER PRIMARY KEY.
------------ Дoбавленo в 02.33:
Neo писал(а):
А если поставить "delete FROM zavershit WHERE id Like '28';" при прагме, это аналогично "delete FROM zavershit WHERE id = '28';" ? или оно поудаляет тогда 280?

Тебе же написали
Tad писал(а):
А применять LIKE для DELETE FROM - носить в кармане гранату с выдернутой чекой

Не делают так, как ты написал
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#385: 2010-06-28 02:39:45 ЛС | профиль | цитата
nesco, вообще-то все values('%1','%2','%3','%4') всегда пишу в кавычках, а БД сама разберётся кто число, а кто строка
Зато заморачиваться не надо с типами колонок.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 704
Рейтинг: 7
#386: 2010-06-28 02:40:12 ЛС | профиль | цитата
nesco писал(а):
Вообще-то, id делают уникальным целочисленным
ну вроде и я так поставил - CREATE TABLE zavershit (id INTEGER PRIMARY KEY, sekundi, reakcija, dopolnitelno); (может в примерах при вопросе напутал)
nesco писал(а):
Не делают так, как ты написал
то есть при селект так делают, а при делет - нет? я же помню, что не от хорошей работы = на лайк перешел . И это пока единственное спасение при селекте точного значения в строке (в моем случае)
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#387: 2010-06-28 02:45:31 ЛС | профиль | цитата
Tad писал(а):
а БД сама разберётся кто число, а кто строка

Ну, ну, рассказывай. SQLite, возможно, и понимает такое, а вот ODBC меня послал в некторых случаях, от драйвера, видать, зависит
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#388: 2010-06-28 02:46:00 ЛС | профиль | цитата
Если готовый запрос (после FormatStr) будет выглядеть так

#pas
delete FROM zavershit WHERE id Like "%28"
//или так
delete FROM zavershit WHERE id Like "28%"
то удалятся в первом случае все оканчивающиеся на 28, а во втором все начинающиеся на 28
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Neo
Ответов: 704
Рейтинг: 7
#389: 2010-06-28 02:48:36 ЛС | профиль | цитата
Ребята, а как же быть дальше, когда вы мою песочницу разламали , а где новая не сказали )). Не могу я удалять не по лайк, а по "=". У меня "=" работает без понимания регистра. Ему пофиг: M и m поудаляет. А гранату носить тоже не хочу
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#390: 2010-06-28 02:50:02 ЛС | профиль | цитата
Tad писал(а):
удалятся в первом случае все оканчивающиеся на 28

Интересно и как оно это сделает при вот таком Like
Tad писал(а):
Like 'Пользователь8'

------------ Дoбавленo в 02.50:
Понятно -- глюк форума
карма: 22

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