Достаточно простой вопрос, мне нужно сделать INSERT && SELECT из созданной мною таблицы
Если я правильно понял, я создал в пакете объект, дал ему имя скажем UsrTest
http://joxi.ru/RmzkDq7s0Z3vE2
Унаследовался от BaseObject Туда подтянулись базовые колонки id created modified
У меня есть WebService который слушает GET параметр, и вставляет его в базу данных.
Вопрос как сделать вставку и выборку на сороне сервера
В доках присуствует некий UserConnection который я хз как получить или откуда его взять

public string callback(string data)
                {
                        var request = HttpContext.Current.Request;
                        //NEED TO INSERT request["param"] to DB UsrTest to field "name"

                        //NEED TO SELECT ALL FROM TABLE AND RETURN
                }

UPD: Field name вымышлен, но не суть важно

Нравится

5 комментариев

Здравствуйте. Вам должна помочь эта ссылка
https://academy.terrasoft.ru/documents/technic-sdk/7-10/crud-operacii-n…
Есть два подхода
Использование методов Select и Insert
Использование EntitySchemaQuery

"Роман Симута" написал:

Здравствуйте. Вам должна помочь эта ссылка

https://academy.terrasoft.ru/documents/technic-sdk/7-10/crud-operacii-na...

Есть два подхода

Использование методов Select и Insert

Использование EntitySchemaQuery

Доброго времени суток, спасибо за ваш комментарий, на данный момент у меня написано следущее

[OperationContract]
		[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
		public string set(string data)
		{
			var userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
			var insert = new Insert(userConnection).Into("UsrTest")
			.Set("UsrAccessTokenString", Column.Const("SOME_TOKEN"))
			.Set("UsrAccessTokenRefresh", Column.Const("SOME_REFRESH_TOKEN"));
			return "Hello";
		}
 
		[OperationContract]
		[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
		public string get(string data)
		{
			var text = "Data: ";
			var userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
			Select selectQuery = new Select(userConnection)
				.Column("UsrAccessTokenString")
				.Column("UsrAccessTokenRefresh")
				.From("UsrTest");
			// Выполнение запроса к базе данных и получение результирующего набора данных.
			using (DBExecutor dbExecutor = userConnection.EnsureDBConnection())
			{
				using (IDataReader reader = selectQuery.ExecuteReader(dbExecutor))
				{
					while (reader.Read())
					{
						text = "TOKEN: " + reader.GetString(0) + " REFRESH: " + reader.GetString(1) + "; ";
					}
				}
			}
			return text;
		}

У меня создан обьект с именем UsrTest и там соответственно колонки, но когда я стучусь на get() я получаю exception: The exception message is 'Invalid object name 'dbo.UsrTest'.'
Объект назван так как указано в запросе

И сразу еще один вопрос, можно ли посмотреть данные в БД (если разработка идет on-cloud)

UPD: Ошибка пропала когда в пакете кликнул по объекту проавкой кнопкой мыши и выбрал обновление структуры базы

Посмотреть данные в БД, если разработка на on-cloud, можно используя партнерский модуль для работы с SQL запросами. Подробнее информация по ссылке: http://samarasoft.com/sql-console/?utm_source=community&utm_medium=web

при создании объекта вы его публиковали? если нет, то не была создана таблица в бд

Добрый день.

Ошибка свидетельствует о том, что таблицы с именем UsrTest нет. Скорей всего объект не был опубликован или же поле 'Название' не содержит 'UsrTest'.

Показать все комментарии