Вверх ↑
Этот топик читают: Vlad1994, Гость
Ответов: 3943
Рейтинг: 622
#1516: 2018-04-24 11:00:14 ЛС | профиль | цитата
Так в папке примеров есть ODBC. Смотрел? Там только DSN_Name, User_ID, Password поставить. DSN_Name настраивается в "Панели управления" (по мануалу к твоему драйверу).
карма: 19

0
Ответов: 139
Рейтинг: 0
#1517: 2018-06-20 11:49:33 ЛС | профиль | цитата
А есть шансы записать :memory: базу данных на диск?
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1518: 2018-06-20 14:53:37 ЛС | профиль | цитата
Danya писал(а):
А есть шансы записать :memory: базу данных на диск?
А что мешает?
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16489
Рейтинг: 1210
#1519: 2018-07-29 23:01:54 ЛС | профиль | цитата
Запрос на вывод результата с нумерацией строк.
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1NumericString.rar [1.9KB] [131]
Ответов: 648
Рейтинг: 18
#1520: 2018-08-22 16:29:55 ЛС | профиль | цитата
Подскажите пожалуйста как составить запрос..

Есть таблица вида:

data text;date

AAAAAAAAA;2018-07-01
AAAAAAAAA;2018-07-20
......
BBBBBBBBB;2018-07-04
BBBBBBBBB;2018-07-28
......
ССССССССС;2018-07-01
ССССССССС;2018-07-19

(все записи в виде групп ААААА, BBBBB, ССССС и тд, отличие только в датах в группе)

мне требуется сделать DELETE таким образом чтобы в БД остались записи:

AAAAAAAAA;2018-07-20
BBBBBBBBB;2018-07-28
ССССССССС;2018-07-19

т.е. 1 запись из каждой группы с максимальной датой

--- Добавлено в 2018-08-22 16:33:08

не могу понять как составить запрос чтобы не делать конструкцию вида

delete from table where data='AAAAAAAA' and date NOT IN (select max(date) from table where data='AAAAAAA')

--- Добавлено в 2018-08-22 16:36:03

возможно ли сделать что-то вроде delete from table where rowid NOT IN (select rowid from table where data=data and max(date))

Редактировалось 3 раз(а), последний 2018-08-22 16:36:03
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1521: 2018-08-22 21:03:36 ЛС | профиль | цитата
Gunnman писал(а):
(все записи в виде групп ААААА, BBBBB, ССССС и тд, отличие только в датах в группе)

Если записи в группах идут в порядке возрастания дат, то тестовая схема :
Add(MainForm,2953706,21,105)
{
Width=417
Point(onClose)
link(onCreate,179590:doOpen,[])
link(onClose,179590:doClose,[])
}
Add(DS_SQLite,179590,98,119)
{
Name="db"
FileName=":memory:"
link(onOpen,11084183:doExec,[])
}
Add(DSC_Exec,11084183,154,119)
{
SQL="CREATE TABLE test(\r\n data TEXT,\r\n dat TEXT);\r\n \r\nINSERT INTO test values("AAAAAAAAA","2018-07-01");\r\nINSERT INTO test values("AAAAAAAAA","2018-07-20");\r\nINSERT INTO test values("BBBBBBBBB","2018-07-30");\r\nINSERT INTO test values("BBBBBBBBB","2018-07-28");\r\nINSERT INTO test values("NNNNNNNNN","2018-07-01");\r\nINSERT INTO test values("NNNNNNNNN","2018-07-19");"
DSManager="db"
link(onExec,819765:doQuery,[])
}
Add(StringTable,9262160,336,119)
{
Left=10
Top=25
Width=185
Height=200
Columns=#1:1|1:2|
Grid=0
}
Add(Button,14191584,147,238)
{
Left=160
Top=240
link(onClick,4921064:doEvent1,[])
}
Add(StringTable,103285,336,245)
{
Left=200
Top=25
Width=185
Height=200
Columns=#1:1|1:2|
Grid=0
}
Add(DSC_Query,819765,231,119)
{
SQL="SELECT * FROM test;"
DSManager="db"
link(onQuery,10840089:doStr,[])
}
Add(MT_String,10840089,280,119)
{
link(onResult,9262160:doAdd,[])
}
Add(DSC_Query,11604335,224,245)
{
SQL="SELECT * FROM test;"
DSManager="db"
link(onQuery,5281440:doStr,[])
}
Add(MT_String,5281440,280,245)
{
link(onResult,103285:doAdd,[])
}
Add(Hub,4921064,189,238)
{
link(onEvent1,14903288:doExec,[(217,244)(217,195)])
link(onEvent2,11604335:doQuery,[])
}
Add(DSC_Exec,14903288,231,189)
{
SQL="DELETE FROM test WHERE rowid NOT IN(SELECT rowid FROM test GROUP BY data);"
DSManager="db"
}


Редактировалось 2 раз(а), последний 2018-08-22 22:14:38
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 648
Рейтинг: 18
#1522: 2018-08-23 09:47:29 ЛС | профиль | цитата
Tad, К сожалению даты идут не по порядку.
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1523: 2018-08-23 10:50:04 ЛС | профиль | цитата
Gunnman писал(а):
К сожалению даты идут не по порядку.
А это как?
Посмотреть бы на БД.
Сделай картинку SELECT * FROM таблица
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 648
Рейтинг: 18
#1524: 2018-08-23 12:17:48 ЛС | профиль | цитата
Tad, разобрался уже, спасибо за пример, проблема была у меня в БД, не верный тип столбца. Даты идут по порядку, все нормально. Еще вопросик)

столбец create_date тип text

данные записываются как insert date('2018-07-01')

как правильнее искать максимальную дату:

select max(date(create_date) или select max(create_date)
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1525: 2018-08-23 16:31:16 ЛС | профиль | цитата
Gunnman, на пальцах
если объявил
Gunnman писал(а):
столбец create_date тип text

то просто insert into myTab(create_date) values('2018-07-01');
и тогда SELECT max(create_date) FROM myTab; каждая create_date будет сравниваться побуквенно (10 знаков)

Я бы объявил create_date INTEGER
тогда insert into myTab(create_date) values(CAST(julianday('2018-07-01') AS INTEGER));
Время на INSERT увеличится, но оно меня не колышет, зато на
SELECT max(create_date) FROM myTab; уменьшится.

Да и мой INSERT INTO при create_date INTEGER смотрелся бы так:
insert into myTab(create_date) values(CAST(julianday('now','localtime') AS INTEGER));
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 648
Рейтинг: 18
#1526: 2018-08-24 19:58:06 ЛС | профиль | цитата
Tad, спасибо! Integer это хорошо, будем пользовать его
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1527: 2018-08-25 14:00:39 ЛС | профиль | цитата
А так, если нужно фиксировать время внесения записи в БД


Add(MainForm,2953706,21,105)
{
Width=466
Point(onClose)
link(onCreate,10294138:doOpen,[])
link(onClose,10294138:doClose,[])
}
Add(DS_SQLite,10294138,70,119)
{
Name="mydb"
FileName=":memory:"
link(onOpen,8165484:doExec,[])
}
Add(DSC_Exec,8165484,112,119)
{
SQL="CREATE TABLE test(\r\nid INTEGER PRIMARY KEY,\r\nname TEXT,\r\nrDate REAL DEFAULT (julianday('now','localtime'))\r\n);"
DSManager="mydb"
}
Add(StringTable,8202161,336,168)
{
Left=5
Top=15
Width=435
Height=130
Columns=#2:id|3:Имя|4:Дата|5:Время|
}
Add(Edit,7249717,70,168)
{
Left=60
Top=180
Width=140
link(onEnter,3412309:doString,[])
}
Add(Label,16019537,161,119)
{
Left=20
Top=180
Width=26
Height=17
Caption="Имя"
}
Add(DSC_Query,16245721,238,182)
{
SQL="SELECT id, name, date(rDate), time(rDate) FROM test;"
DSManager="mydb"
link(onQuery,5885467:doStr,[])
}
Add(Hub,8895925,210,175)
{
link(onEvent1,8202161:doClear,[])
link(onEvent2,16245721:doQuery,[])
}
Add(FormatStr,3412309,112,175)
{
Mask="INSERT INTO test(name) values("%1");"
link(onFString,16146200:doExec,[])
}
Add(DSC_Exec,16146200,161,175)
{
DSManager="mydb"
link(onExec,8895925:doEvent1,[])
}
Add(MT_String,5885467,280,182)
{
link(onResult,8202161:doAdd,[(327,188)(327,174)])
}

карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 927
Рейтинг: 3
#1528: 2018-09-02 01:30:05 ЛС | профиль | цитата
Как добавить в ячейку записи дополнительные данные к уже там содержащимся? Формат текст.
Только запихиванием в буфер старого содержания и сложением строк?
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1529: 2018-09-02 10:34:54 ЛС | профиль | цитата
UPDATE <tabl> SET <ячейку записи>=<ячейку записи>||<дополнительные данные> WHERE <идентификатор записи>=<???>
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 927
Рейтинг: 3
#1530: 2018-09-07 10:50:15 ЛС | профиль | цитата
Прошу помощи с примером схемы.
В сети крутится база Оракл. На компе стоят различные клиентские программы в которые вхожу с логином и паролем.
Возможно соорудить что-то что бы получать элементарные данные из таблиц Оракла используя свой логин\пароль?
Хочу вытягивать некоторые данные из Оракла в свою прогу, т.к. приходится 2 раза писать одно и то же.
С помощью программы Universal SQL Editor удалось подключиться используя свой логин\пароль. Увидел базу.
Как на HiAsm реализовать подключение? Буквально подключение и выполнение простейшего запроса типа SELECT Adres FROM bdadresuser WHERE iduser='86';
Поделитесь кто-нибудь схемой для этой цели. Буквально простейший набросок, что бы понять куда и как дальше двигаться.
Пробовал со стандартными примерами - что-то не выходит.
карма: 0

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