Исполнительные модули мало чем различаются в плане реализации. Однако, у каждой из них есть свои особенности обработки данных. Перейдём к модуля справочника.

Функция изменения телефона:
function feedback.change()

	base = require "database"

	print("\n Выберите номер телефона для изменения. \n")

	data = base.select_from_where("feedback.number, feedback.phone, customer.name", "feedback, customer", "feedback.customer = customer.number")
	while data do
		print("| № " .. data.number .. " | " .. data.name .. " | " .. data.phone .. " |" )
		data = thread:fetch(data, "a")
	end

	print("\n Укажите клиента для изменения телефона: \n")
	number = io.stdin:read()

	print("\n Введите новый телефон: \n")
	phone = io.stdin:read()

	base.update_set_where( "feedback", "phone = " .. tostring(phone), "number = " .. tostring(number) )

	print("\n Данные клиента изменены. \n")	

end

Здесь мы просто меняем телефон, но при отображении пользователей в качестве опорного берётся индекс телефонного справочника, а не клиента. Внимательность в этих аспектах обязательна.

Функция добавления телефона:
function feedback.add()

	base = require "database"

	print("\n Список клиентов для добавления телефона: \n")

	data = base.select_from_where( "number, name", "customer", nil )
	while data do
		print("| № " .. data.number .. " | " .. data.name .. " | ")
		data = thread:fetch(data, "a")
	end

	print("\n Укажите номер клиента для добавления телефона: \n")
	number = io.stdin:read()
	print("\n Укажите новый номер телефона: \n")
	phone = io.stdin:read()

	base.insert_into_values( "feedback", "customer, phone", tostring(number) .. ", " .. tostring(phone) )

	print("\n Телефон добавлен. \n")		

end

Идёт добавление телефона через привязку к клиенту. Не иначе!

Функция удаления телефона:
function feedback.drop()

	base = require "database"

	print("\n Выберите номер телефона для удаления: \n")

	data = base.select_from_where( "feedback.number, customer.name, feedback.phone", "feedback, customer", "feedback.customer = customer.number" )
	while data do
		print("| № " .. data.number .. " | " .. data.name .. " | " .. data.phone .. " |" )
		data = thread:fetch(data, "a")
	end

	print("\n Укажите номер телефона для удаления: \n")
	number = io.stdin:read()

	base.delete_from_where( "feedback", "number = " .. tostring(number) )

	print("\n Телефон удалён. \n")		

end

Просто удаляется телефон по индексу.

В следующей статье я покажу работу модуля управления позициями.

P.S. Маленькая просьба — если хотите передать замечание по этому циклу статей, прошу предварительно прочитать статью «Разработка микро-учётной системы на lua, часть вторая. Постановка задачи», в которой я указываю условия разработки программы и функции, которые на неё возлагаются. Учитывайте это.
Поделиться с друзьями
-->

Комментарии (0)