Что нового

Нужна помощь в SQLite - создание БД

sforce5

Олл фо ЛулзЪ
Сообщения
160
Репутация
41
В общем пишу БД клиентов:



Нужно в левом LV организовать БД самих клиентов, и их данные, а в правом LV (при переключении элемента в левом LV) будет отображаться дата приёма и полученная сумма выбранного клиента.

Вопросы:
1) Подскажите как это реализовать (на SQLite)
2) Как добавлять, удалять, изменять из БД созданные элементы
 

TheBloodTear

Знающий
Сообщения
36
Репутация
9
Давно не пользовался SQLite, кажется какие-то изменения были, а так вот тут есть начало :smile:..
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
369
Код:
#include <sqlite.au3>
#include <array.au3>
Global $hQuery, $aR, $iRows, $iColumns, $aResult
Dim $left[2], $right[2]

GUICreate('', 1200, 300)
$left_lv = GUICtrlCreateListView('клиент|адрес', 10, 10, 550, 280)
$right_lv = GUICtrlCreateListView('дата приёма|полученная сумма', 570, 10, 550, 280)
_SQLite_Startup()
_SQLite_Open('clients.db')
_SQLite_Exec(-1, "CREATE TABLE IF NOT EXISTS clients (name, adress, date_adopted, summ);")
_SQLite_Exec(-1, "INSERT INTO clients VALUES ('Вася Пупкин','Воронеж ул.Лизюкова д.20','01.04.2009','миллион');")
_SQLite_Exec(-1, "INSERT INTO clients VALUES ('Анна Каренина','Питер Невкий проспект д.16','09.06.1860','1000');")

$result = _SQLite_GetTable(-1, "SELECT name, adress FROM clients;", $left, $iRows, $iColumns)
;~ _ArrayDisplay($left)
For $i = 3 To UBound($left) - 1 Step 2
	GUICtrlCreateListViewItem($left[$i] & '|' & $left[$i+1], $left_lv)
Next
$result_2 = _SQLite_GetTable(-1, "SELECT date_adopted, summ FROM clients;", $right, $iRows, $iColumns)
;~ _ArrayDisplay($right)
For $i = 3 To UBound($right) - 1 Step 2
	GUICtrlCreateListViewItem($right[$i] & '|' & $right[$i+1], $right_lv)
Next
GUISetState()
While 1
	$msg = GUIGetMsg()
	Select
	Case $msg = -3
		Exit
	EndSelect
WEnd


Вставка строки в таблицу базы -
Код:
INSERT INTO clients VALUES(полня через запятую в кавычках)
Обновление строки в таблице базы (в поле суммы ставим 2 миллиона только для Карениной, если не указать условие - поставит всем клиентам)-
Код:
UPDATE clients SET summ = 'два миллиона' WHERE name = 'Анна Каренина';
Удаление строки -
Код:
DELETE FROM clients WHERE name = 'Анна Каренина';
Обо всем этом можно почитать здесь http://gsbelarus.com/gs/wiki/index.php/%D0%9A%D1%80%D0%B0%D1%82%D0%BA%D0%B8%D0%B9_%D0%BA%D1%83%D1%80%D1%81_SQL

Важные грабли: если элементы вставлялись в ординарных кавычках, то и селект по ним нужно делать в ординарных(name = 'Анна Каренина', а не name = "Анна Каренина" и не name = Анна Каренина).

Просматривать и редактировать базы можно стронними программами, сам пользуюсь этим http://www.sqliteexpert.com/ версии Personal хватает за глаза.
 
Верх