Что нового

Как правильно взять данные из sqlite и положить в архив?

ssdd

Новичок
Сообщения
11
Репутация
0
Всем привет!
Делаю сейчас свои первые шаги при работе с sqlite
и прошу помощи чтобы понять и разобраться =)

Подскажите как правильно брать данные из таблицы, и положить эти данные в массив ?
К примеру есть таблица
ID Key Device Num
1 22 Nokia 54654
2 33 Motorola 345334

Мне нужно выбрать значения строки где есть Motorola столбцов Key и Device
Для этого использую запрос вида
SELECT Device,Key FROM table WHERE id = "Motorola"


Пробовал с _SQLite_Query
но почему то не получается выбрать все значения, выводится только одно.

Потом перешел на _SQLite_Exec
И получилось что-то вида

Код:
Dim $AccountDataArray[0]
$d = _SQLite_Exec(-1,"SELECT Device,Key FROM table WHERE id = "Motorola""","_cb") ; _cb Will be called for each row
Func _cb($aRow)
    For $s In $aRow
      _ArrayAdd($AccountDataArray,$s)
    Next
EndFunc


Но этот код у меня должен использоваться в функции, но как его использовать в функции если у меня тут тоже есть функция ? А также в данном способе в архив заносят не только значения но и названия столбцов, а как сделать чтобы они не заносились ?
Или как правильнее оформить выборку ?

Не очень пока еще понял различия между _SQLite_Exec и _SQLite_Query
может поэтому что-то делаю не так....
 
Автор
S

ssdd

Новичок
Сообщения
11
Репутация
0
или подскажите тогда если никто не может помочь про sqlite
как можно выполнить вышеуказанный код в цикле For..In..Next ?
сейчас этот код не может работать в цикле....видимо потому что там есть функция.
 

СН3СН2ОН

Знающий
Сообщения
78
Репутация
12
Код:
$iRval = _SQLite_GetTable2d(-1,"SELECT Device,Key FROM table WHERE id = 'Motorola';", $aResult, $iRows, $iColumns)
ConsoleWrite('$iRows ' & $iRows & @CRLF)
ConsoleWrite('$iColumns ' & $iColumns & @CRLF)
If $iRval = $SQLITE_OK Then
	_SQLite_Display2DResult($aResult) ;показывает содержимое БД в консоли
	_ArrayDisplay($aResult) ;показывает содержимое БД в array-листе
Else
	MsgBox(16, "SQLite Ошибка: " & $iRval, _SQLite_ErrMsg())
EndIf


ps1
$aResult - это полноценный массив
его размеры - $iRows, $iColumns

ps2
Может все-таки имелось в виду
"SELECT Num,Key FROM table WHERE Device = 'Motorola';"

ps3
Для практики начните с этого
"SELECT * FROM table WHERE Device = 'Motorola';"
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ssdd [?]
если никто не может помочь про sqlite
Для того, чтобы Вам помочь, нужно создать сначала подобную базу данных, так как пример файла-базы Вы не посчитали нужным сделать и прикрепить. А оно кому-то надо?
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
Нужно выбрать значения строки где есть Motorola столбцов Key и Device
Неправильное условие - SELECT Device,Key FROM table WHERE id = "Motorola", не понятно как с таким условием выводилось значение.
Нужно же выбрать столбцы где где есть Motorola, а в столбце id такого значения нет в принципе
WHERE Device = "Motorola"

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