Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#1306: 2014-11-06 15:09:08 ЛС | профиль | цитата
ser_davkin,
SELECT substr(file,1,inStr(file,'.')-1 ) FROM test;
но не со всякой dll работает.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:ser_davkin
Ответов: 1535
Рейтинг: 176
#1307: 2014-11-06 16:01:44 ЛС | профиль | цитата
Tad, со стандартной dll этот запрос не работает
Gunnman, благодарю, но со сторонней библиотекой для меня не актуально. Будем химичить на том, что есть.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 655
Рейтинг: 18
#1308: 2014-11-06 17:32:44 ЛС | профиль | цитата
ser_davkin, всмысле сторонняя? там просто версия сборки другая, с большим кол-вом функций подключенных. Включи библиотеки в exe пусть выгружает при запуске)
------------ Дoбавленo в 18.32:
Tad, спасибо за пример)) этой функции я не знал
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#1309: 2014-11-06 19:29:54 ЛС | профиль | цитата
ser_davkin, со стандартной dll и rtrim() вроде не работает.
Замени стандартную dll на эту sqlite3_tad.rar и не парься.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1sqlite3_tad.rar [349.2KB] [327]
Ответов: 655
Рейтинг: 18
#1310: 2014-11-08 01:37:47 ЛС | профиль | цитата
Подскажите по использованию Sqlite пожалуйста:

Делаю приложение с web страницами, данные планирую хранить в Sqlite, приложение будет сетевое на 10 человек.

Sqlite как я понял может работать в 1 потоке, в связи с чем пару вопросов:

1) Sqlite_DB находится вне мультика, Sqlite_Query в мультике (TCPServerEx), при подключении создается экземпляр схемы, Sqlite_Query при этом создает отдельное подключение к БД или нет?

Если на каждый экземпляр мультика создается отдельное подключение к бд как поступить правильно:
1) Включить в SQLite WAL (Write Ahead Log)?
2) Вынести Sqlite_Query за мультик, сделать накопитель событий и поочередно в одном потоке их обрабатывать?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#1311: 2014-11-08 19:00:16 ЛС | профиль | цитата
ser_davkin писал(а):
Tad, со стандартной dll этот запрос не работает
Tad писал(а):
Замени стандартную dll на эту sqlite3_tad.rar и не парься.
или здесь две IC
code_34573.txt

А здесь неплохая книга по SQLite на русском: http://agp1.hx0.ru/.SQLite.Allow.pdf

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_34573.txt [3KB] [524]
Ответов: 16884
Рейтинг: 1239
#1312: 2014-11-09 20:01:41 ЛС | профиль | цитата
ser_davkin.
Вот в этой dll-ке inStr() тоже работает.
sqlite3(v3.8.7.1).rar
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1sqlite3(v3.8.7.1).rar [291.2KB] [355]
Ответов: 413
Рейтинг: 57
#1313: 2014-11-10 21:25:48 ЛС | профиль | цитата
Добрый вечер. Подскажите как вывести значение одной ячейки последней строки?
Я понимаю что как то подобно этому запросу: SELECT '%1' FROM '%2' WHERE ??? = max ;
но если так то ошибка, нужно как-то правильно записать "??? = max" иначе SQLite понимает max как колонку которой нет и ??? что лучше использовать (можно что либо кроме id или нет?)
карма: 0

0
Ответов: 655
Рейтинг: 18
#1314: 2014-11-10 21:34:45 ЛС | профиль | цитата
Poputchik, тебе нужны данные из последней строки определенного стобца?

select '%1' from '%2' order by rowid desc limit 1; - поиск по встроенному индетификатору

select '%1' from '%2' order by id desc limit 1; - поиск по id который вы создаете сами

select name from user order by name asc limit 1; - поиск по колонке name таблицы users
карма: 0

0
Ответов: 413
Рейтинг: 57
#1315: 2014-11-10 21:39:56 ЛС | профиль | цитата
Gunnman писал(а):
тебе нужны данные из последней строки определенного стобца?

из столбца последней строки или ячейки последней строки или колонки последней строки не знаю как правильнее сказать и есть ли разница в определении по отношению к SQLite
сделал запрос:
select 'nom_resh' from 'Reshenia' order by rowid desc limit 1;
выдало надпись nom_resh
карма: 0

0
Ответов: 655
Рейтинг: 18
#1316: 2014-11-10 21:50:46 ЛС | профиль | цитата
кавычки убери..
select nom_resh from Reshenia order by rowid desc limit 1;
------------ Дoбавленo в 22.48:
в твоем запросе они не нужны.
они чаще нужны при вставке (insert\replace\update) и в основном для данных типа text,blob.

insert into users(id,name,phone,city) values (1, 'Вася', 8999111111,'Moscow');
------------ Дoбавленo в 22.50:
Если ты ищещь по строковым данным, то запрос будет такой:

select id from users where name='Вася';

Если ищещь по числам, то кавычки не нужны.

select id from users where phone=8999111111;
карма: 0

1
Голосовали:Poputchik
Ответов: 413
Рейтинг: 57
#1317: 2014-11-10 21:54:46 ЛС | профиль | цитата
Gunnman, Спасибо что разжевал!
Если не затруднит можешь объяснить по Русски разницу между " " и при составлении запроса в SQLite.
карма: 0

0
Ответов: 655
Рейтинг: 18
#1318: 2014-11-10 22:09:51 ЛС | профиль | цитата
в одинарных ковычках это текст, в двойных индетификатор
'Вася'
"users" -индетификатор

https://www.sqlite.org/lang_keywords.html
------------ Дoбавленo в 23.09:
Use single-quotes, not double-quotes, around string literals in SQL. This is what the SQL standard requires. Your WHERE clause expression should read: column1='column1'
SQL uses double-quotes around identifiers (column or table names) that contains special characters or which are keywords. So double-quotes are a way of escaping identifier names. Hence, when you say column1="column1" that is equivalent to column1=column1 which is obviously always true.

Используйте одинарные кавычки, НЕ двойные для строковых данных в SQL. Это требование SQL. Ваш запрос WHERE должен быть: column1='column1'

SQL использует двойные кавычки для индетификаторов (имена столбцов или таблиц) которые содержат специальные символы или ключевые слова. В общем двойные кавычки для экранирования имен индетификаторов. Поэтому, когда вы говорите column1="column1" это эквивалентно column1=column1, что собственно является правдой.
карма: 0

1
Голосовали:Poputchik
Ответов: 413
Рейтинг: 57
#1319: 2014-11-11 20:56:37 ЛС | профиль | цитата
Никак не могу справится с датами в базе.
Так создаю базу:
CREATE TABLE if not exists reshenia_1(
id integer primary key AUTOINCREMENT, --1. id
nom_res TEXT, --2. номер
dv_res INTEGER --3. дата
);
так добавляю строку в базу:
INSERT OR REPLACE INTO 'reshenia_1' VALUES (NULL, '%2', '%3');
а так пытаюсь найти:
select nom_res FROM 'reshenia_1' WHERE dv_res = %2 ; (где %2 дата в цифровом формате)
ничего не выдает, в чем ошибка?
Схема:
code_34608.txt
------------ Дoбавленo в 21.56:
Пробовал колонку создавать как DATE и искать значения по примеру из этой темы:
http://hiasm.com/forum.html?q=3&p=99778
тоже в мой базе не хочет ничего находить. Что-то я не верно делаю
карма: 0

0
файлы: 1code_34608.txt [3.3KB] [670]
Ответов: 824
Рейтинг: 138
#1320: 2014-11-11 22:07:39 ЛС | профиль | цитата
Poputchik, Заменить DSC_Exec на DSC_Query
Add(MainForm,3063070,280,161)
{
link(onCreate,2106005:doEvent1,[(340,181)(340,195)])
}
Add(DSC_Exec,5404102,504,189)
{
SQL="CREATE TABLE if not exists reshenia_1(\r\nid integer primary key AUTOINCREMENT, --1. id\r\nnom_res TEXT, --2. номер решения\r\ndv_res INTEGER --3. дата выдачи решения\r\n);\r\n"
DSManager="db1"
link(onError,4162166:doWork,[])
}
Add(DS_SQLite,3869661,448,189)
{
Name="db1"
Point(onError)
link(onOpen,5404102:doExec,[])
link(onError,7634737:doWork,[(488,202)(488,230)])
}
Add(Dir,1293062,399,140)
{
}
Add(StrCat,9571880,399,189)
{
Str2="Reshenia_1.db"
link(onStrCat,3869661:doOpen,[])
link(Str1,1293062:CurrentDir,[])
AddHint(58,-21,87,13,Str2)
}
Add(LineBreakEx,4162166,560,196)
{
Caption="Error"
}
Add(LineBreakEx,7634737,497,224)
{
Caption="Error"
}
Add(LineBreakEx,6650179,714,455)
{
Caption="Error"
Type=1
link(OnEvent,14032303:doMessage,[])
}
Add(Message,14032303,770,455)
{
Caption="Error"
}
Add(Hub,2106005,350,189)
{
OutCount=3
link(onEvent1,9571880:doStrCat,[])
link(onEvent3,6131663:doWork1,[(382,209)])
}
Add(VisualStrings,11064064,196,126)
{
@Hint=#11:Имя таблицы|
Lines=#10:Reshenia_1|
Width=67
}
Add(LineBreakEx,1196580,196,154)
{
Type=3
link(_Data,11064064:Text,[])
}
Add(FormatStr,13119041,413,434)
{
DataCount=3
Mask="INSERT OR REPLACE INTO '%1' VALUES (NULL, '%2', '%3');"
Point(FString)
link(onFString,1066544:doCharset,[])
link(Str1,9563998:getVar,[(419,425)(398,425)])
link(Str2,5325190:Text,[])
link(Str3,12562534:Var1,[(433,404)])
}
Add(DSC_Exec,13037445,525,434)
{
DSManager="db1"
link(onError,6757936:doWork,[])
}
Add(LineBreakEx,9563998,392,406)
{
Type=2
}
Add(LineBreakEx,6757936,567,441)
{
Caption="Error"
}
Add(Charset,1066544,476,434)
{
Type=6
link(onCharset,13037445:doExec,[])
}
Add(Button,11933617,294,427)
{
Left=10
Top=50
Width=165
Height=35
Caption="Добавить строку в базу"
link(onClick,10442618:doEvent1,[])
}
Add(Edit,5325190,420,364)
{
Left=130
Top=20
Width=120
}
Add(DatePicker,13906050,532,266)
{
Left=260
Top=20
Width=105
Height=21
Point(CurrentDateTime)
Point(DateInt)
}
Add(FormatStr,11020164,441,511)
{
Mask="SELECT nom_res FROM '%1' WHERE dv_res = '%2';"
link(onFString,1963478:doCharset,[])
link(Str1,3136427:getVar,[])
link(Str2,12562534:Var2,[(454,502)(461,502)])
}
Add(Button,4682251,385,511)
{
Left=10
Top=205
Width=165
Height=35
Caption="Найти строку в базу"
link(onClick,11020164:doString,[])
}
Add(Edit,15203951,707,511)
{
Left=185
Top=210
Width=190
Height=25
}
Add(Charset,1963478,497,511)
{
Type=6
link(onCharset,3248021:doQuery,[])
}
Add(LineBreakEx,1041268,665,574)
{
Caption="Error"
}
Add(Label,6621469,623,343)
{
Left=180
Top=55
Width=190
Height=20
}
Add(Hub,10442618,357,427)
{
link(onEvent1,6131663:doWork3,[(382,433)])
link(onEvent2,13119041:doString,[])
}
Add(HubEx,6131663,378,343)
{
link(onEvent,6823682:doData,[])
}
Add(LineBreakEx,3136427,441,483)
{
Type=2
}
Add(GetDataEx,12562534,455,399)
{
link(Data,13051045:Var1,[(461,323)])
}
Add(DoData,6823682,539,343)
{
link(onEventData,6621469:doText,[])
link(Data,13051045:Var2,[])
}
Add(GetDataEx,13051045,539,318)
{
link(Data,13906050:DateInt,[])
}
Add(Charset,16019619,644,511)
{
@Color=5636095
Type=7
link(onCharset,15203951:doText,[])
}
Add(DSC_Query,3248021,574,511)
{
@Color=43775
DSManager="db1"
link(onQuery,16019619:doCharset,[])
link(onError,1041268:doWork,[(613,531)(613,580)])
}


карма: 1

1
Голосовали:Poputchik
Сообщение
...
Прикрепленные файлы
(файлы не залиты)