powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Регистрация на сайте.
25 сообщений из 150, страница 3 из 6
Регистрация на сайте.
    #38691384
antihacker777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне надо передать хранимой процедуре имя и пароль. А в ответ хочу получить гуид записи.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691391
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaskyANAпропущено...
Что тебе не ясно в словосочетании "не откатывается"?

Я же говорю, сам себе придумал. Сам себе и умный.
Как напишешь, что такое "не откатывается" так и обсудим. IDENTITY (Property) (Transact-SQL)

Reuse of valuesFor a given identity property with specific seed/increment, the identity values are not reused by the engine. If a particular insert statement fails or if the insert statement is rolled back then the consumed identity values are lost and will not be generated again. This can result in gaps when the subsequent identity values are generated.
Я всего лишь про это.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691393
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaskyANAпропущено...
Сигнатуру процедуры покажи. А то не понятно, что тебе надо передать, а что получить. А чужой код ты не понимаешь

Конечно не понимает, показал ему кусок кода, тот и повтори его.
То что у тебя нет примера про процедуру - фигня, зато то что у автора нет - уже понты пошли.
Потом еще про OUTPUT у параметра будем пальцы гнуть.Толсто.

Ещё скажи и ссылки на MSDN ( 16275985 ) ему бесполезно давать?
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691395
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAVolochkovaпропущено...


Конечно не понимает, показал ему кусок кода, тот и повтори его.
То что у тебя нет примера про процедуру - фигня, зато то что у автора нет - уже понты пошли.
Потом еще про OUTPUT у параметра будем пальцы гнуть.Толсто.

Ещё скажи и ссылки на MSDN ( 16275985 ) ему бесполезно давать?

Аааааа. Так ты опять про то как ты путаешь теплое с мягким.
Свой пример смотри и пример из MSDN. Никакой корреляции.
Особенно после покажи сигнатуру... Жесть...
Если бы ТС был бы телепатом, то и проблем бы на было.


Я всего лишь про это.
Это не откат. Называйте вещи своими именами, и может Вас начнут понимать.
И что? Т.е. если была удален запись, и не добавлена новая, то я не смогу заставить сгенерировать такой же ID? А если была запись добавлена, то в "пропущенное значение" нельзя вставить значение?
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691401
antihacker777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про чужой код конечно трудновато. А ссылку разбираю. Дайте время ) И давайте жить в дружбе и мре !!!
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691405
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaskyANAпропущено...
Толсто.

Ещё скажи и ссылки на MSDN ( 16275985 ) ему бесполезно давать?

Аааааа. Так ты опять про то как ты путаешь теплое с мягким.
Свой пример смотри и пример из MSDN. Никакой корреляции.
Особенно после покажи сигнатуру... Жесть...
Если бы ТС был бы телепатом, то и проблем бы на было.Чем дальше, тем толще

Я подумал, что у него уже есть хранимая процедура и он не знает как её вызвать. Вот и попросил показать сигнатуру. Чтобы не умничать про OUTPUT параметры, если вдруг у него там RETURN VALUE

VolochkovaЯ всего лишь про это.
Это не откат. Называйте вещи своими именами, и может Вас начнут понимать.Ну давай, блесни умом, назови имя этой вещи.

А Парамон меня понял.

VolochkovaИ что? Т.е. если была удален запись, и не добавлена новая, то я не смогу заставить сгенерировать такой же ID? А если была запись добавлена, то в "пропущенное значение" нельзя вставить значение?Ничего. Я ещё Парамону писал, что не надо тут думать. Искать потаённый смысл
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691408
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
create table #tmp ( id [int] IDENTITY(1,1) NOT NULL, Value int)

insert into #tmp (Value) Values ( 5),(10),(30)

begin tran 
insert into #tmp (Value) Values ( 15),(110),(130)
rollback tran 

declare @idd int
Select @idd = count(*) from #tmp 
DBCC CHECKIDENT (#tmp, RESEED, @idd);

insert into #tmp (Value) Values ( 25),(210),(230)
Select * from #tmp

delete from #tmp where id between 3 and 4
SET IDENTITY_INSERT #tmp ON; 
insert into #tmp (id, Value) Values (3,  35),(4, 410)
SET IDENTITY_INSERT #tmp off; 

Select * from #tmp
Drop table #tmp



очень просто "заставить" IDENTITY ходить как надо
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691409
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antihacker777Про чужой код конечно трудновато.Код показывает как выполнить простое SQL-выражение при помощи SqlCommand и получить результат его выполнения через параметры команды.
antihacker777И давайте жить в дружбе и мре !!!Ну Волочкова ко мне не ровно дышит, не обращай внимание.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691413
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА Парамон меня понял.


Не льсти себе.
Он понял , что ты сам не понимаешь о чем пишешь и решил не связываться :-)

Про отмазку " типа я думал что у автора есть процедура".. Конечно.
Ты ее спросил?
Кинул какой то непонятный текст и ссылку на вызов процедуры.... Это типа как? Коротко???? D-))))))
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691414
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу Волочкова ко мне не ровно дышит, не обращай внимание.
О.. мсье забыл как его возили...... по буфету и он извинялся??? :-)
Хочется еще? - обращайся :-)
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691417
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaskyANAА Парамон меня понял.


Не льсти себе.
Он понял , что ты сам не понимаешь о чем пишешь и решил не связываться :-)И снова толсто. По другому не умеем

VolochkovaПро отмазку " типа я думал что у автора есть процедура".. Конечно.
Ты ее спросил?Кого её? Отмазку или процедуру? Я попросил показать сигнатуру.

VolochkovaКинул какой то непонятный текст и ссылку на вызов процедуры.... Это типа как? Коротко???? D-))))))Ну если и тебе текст не понятен и ссылка на MSDN, то могу объяснить. Только попроси. Не за чем так кипятиться.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691418
antihacker777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВОт процедура

USE [UsersDB]
GO
/****** Object: StoredProcedure [dbo].[InsertCategory] Script Date: 07/09/2014 10:54:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertCategory]
@username nvarchar(15),
@Identity int OUT
AS
INSERT INTO UserLcTBL (username) VALUES(@username)
SET @Identity = SCOPE_IDENTITY()

Вот код C#

SqlDataAdapter adapter =
new SqlDataAdapter(
"SELECT UserGUID, username FROM dbo.userlcTBL",
cn);

//Create the SqlCommand to execute the stored procedure.
adapter.InsertCommand = new SqlCommand("dbo.InsertCategory",
cn);
adapter.InsertCommand.CommandType = CommandType.StoredProcedure;

// Add the parameter for the CategoryName. Specifying the
// ParameterDirection for an input parameter is not required.
adapter.InsertCommand.Parameters.Add(
new SqlParameter("@username", SqlDbType.NVarChar, 15,
"username"));

// Add the SqlParameter to retrieve the new identity value.
// Specify the ParameterDirection as Output.
SqlParameter parameter =
adapter.InsertCommand.Parameters.Add(
"@Identity", SqlDbType.Int, 0, "UserGUID");
parameter.Direction = ParameterDirection.Output;

// Create a DataTable and fill it.
DataTable categories = new DataTable();
adapter.Fill(categories);

// Add a new row.
DataRow newRow = categories.NewRow();
newRow["username"] = "New Category";
categories.Rows.Add(newRow);

adapter.Update(categories);

Console.WriteLine("List All Rows:");
foreach (DataRow row in categories.Rows)
{
{
Console.WriteLine("{0}: {1}", row[0], row[1]);
}
}

Вот ошибка ))

Type of value has a mismatch with column typeCouldn't store <27> in UserGUID Column. Expected type is Guid.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691419
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volochkovaочень просто "заставить" IDENTITY ходить как надо
зачем эти извращения?
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691421
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилVolochkovaочень просто "заставить" IDENTITY ходить как надо
зачем эти извращения?

Утверждалось, что никогда нельзя повторить IDENTITY .
По факту - можно.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691423
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaИзопропилпропущено...

зачем эти извращения?

Утверждалось, что никогда нельзя повторить IDENTITY .
По факту - можно.
это отрыв от контекста
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691425
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процедура =
Код: sql
1.
2.
3.
4.
5.
6.
ALTER PROCEDURE [dbo].[InsertCategory]
  @username nvarchar(15)
  
AS
INSERT INTO UserLcTBL (username) VALUES(@username)
SELECT [Identity] = SCOPE_IDENTITY()


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 //Create the SqlCommand to execute the stored procedure.
                    adapter.InsertCommand = new SqlCommand("dbo.InsertCategory",
                        cn);
                    adapter.InsertCommand.CommandType = CommandType.StoredProcedure;

                    // Add the parameter for the CategoryName. Specifying the
                    // ParameterDirection for an input parameter is not required.
                    adapter.InsertCommand.Parameters.Add(
                       new SqlParameter("@username", SqlDbType.NVarChar, 15,
                       "username"));

                   
                    // Create a DataTable and fill it.
                    DataTable categories = new DataTable();
                    adapter.Fill(categories);

                    // Add a new row. 
                    categories.Rows[0]["Identity"] - Это ваш ID
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691427
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилэто отрыв от контекста

отнюдь
For a given identity property with specific seed/increment, the identity values are not reused by the engine. If a particular insert statement fails or if the insert statement is rolled back then the consumed identity values are lost and will not be generated again. This can result in gaps when the subsequent identity values are generated.

Иное не утверждалось.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691430
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antihacker777, SelectCommand покажи. Я так понимаю помимо IDENTITY в таблице у тебя есть поле типа UNIQUEIDENTIFIER?
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691434
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaИзопропилэто отрыв от контекста

отнюдь
For a given identity property with specific seed/increment, the identity values are not reused by the engine. If a particular insert statement fails or if the insert statement is rolled back then the consumed identity values are lost and will not be generated again. This can result in gaps when the subsequent identity values are generated.

Иное не утверждалось.Это отрыв от контекста задачи ТС.

Один предложил в транзакцию завернуть, другая DBCC CHECKIDENT (MyTable, RESEED, MyValue)...

P.S.: Ссылку на MSDN я привёл, так как тебе видите-ли не понятно было, о чём я. Обсуждать-то зачем, что там написано?
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691436
antihacker777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так я же пишу, мне нужно добавить, а из добавленной записи вернуть гуид, что бы отправить для активации.

По этому не могу понять categories.Rows[0]["Identity"] - Это ваш ID

Что значит мой ?

СкайАна, не понял о чем ты .
Вот что есть

SqlDataAdapter adapter =
new SqlDataAdapter(
"SELECT UserGUID, username FROM dbo.userlcTBL",
cn);

//Create the SqlCommand to execute the stored procedure.
adapter.InsertCommand = new SqlCommand("dbo.InsertCategory",
cn);
adapter.InsertCommand.CommandType = CommandType.StoredProcedure;

// Add the parameter for the CategoryName. Specifying the
// ParameterDirection for an input parameter is not required.
adapter.InsertCommand.Parameters.Add(
new SqlParameter("@username", SqlDbType.NVarChar, 15,
"username"));

// Add the SqlParameter to retrieve the new identity value.
// Specify the ParameterDirection as Output.
SqlParameter parameter =
adapter.InsertCommand.Parameters.Add(
"@Identity", SqlDbType.Int, 0, "UserGUID");
parameter.Direction = ParameterDirection.Output;

// Create a DataTable and fill it.
DataTable categories = new DataTable();
adapter.Fill(categories);

// Add a new row.
DataRow newRow = categories.NewRow();
newRow["username"] = "New Category";
categories.Rows.Add(newRow);

adapter.Update(categories);

Console.WriteLine("List All Rows:");
foreach (DataRow row in categories.Rows)
{
{
Console.WriteLine("{0}: {1}", row[0], row[1]);
}
}
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691439
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAVolochkovaпропущено...


отнюдь
пропущено...


Иное не утверждалось.Это отрыв от контекста задачи ТС.

Один предложил в транзакцию завернуть, другая DBCC CHECKIDENT (MyTable, RESEED, MyValue)...

P.S.: Ссылку на MSDN я привёл, так как тебе видите-ли не понятно было, о чём я. Обсуждать-то зачем, что там написано?

Да мальчик мажется, приписывая свой бред моим словам?
Для слабаков, это нормально.
Мое решение было выше и оно вполне конкретно.
Одного Ident мало, надо еще и GUID.
Примеры были так же выше.

Про "откат" IDENT был конкретный вопрос - по скольку в ответ понты из BOL, то и ответ в таком же духе.
Так что в контексте понтов - мой пример с CHECKIDENT - вполне вписывается.

Был бы нормальный ответ, было бы предметное обсуждение.
А так у мальчика что то толсто, видимо уже порвался
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691445
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaskyANAпропущено...
Это отрыв от контекста задачи ТС.

Один предложил в транзакцию завернуть, другая DBCC CHECKIDENT (MyTable, RESEED, MyValue)...

P.S.: Ссылку на MSDN я привёл, так как тебе видите-ли не понятно было, о чём я. Обсуждать-то зачем, что там написано?

Да мальчик мажется, приписывая свой бред моим словам?
Для слабаков, это нормально.
Мое решение было выше и оно вполне конкретно.
Одного Ident мало, надо еще и GUID.
Примеры были так же выше.

Про "откат" IDENT был конкретный вопрос - по скольку в ответ понты из BOL, то и ответ в таком же духе.
Так что в контексте понтов - мой пример с CHECKIDENT - вполне вписывается.

Был бы нормальный ответ, было бы предметное обсуждение.
А так у мальчика что то толсто, видимо уже порвался Дура, я не хочу предметно обсуждать IDENTITY. Транзакции и их откат не имеют отношения к тому, как получить значение из выполненного SQL выражения, или запроса.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691446
antihacker777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Volochkova

Твой что должен возвращать ? ГУИД ?
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691448
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И откуда такие закомплексованные бабы только берутся.
...
Рейтинг: 0 / 0
Регистрация на сайте.
    #38691452
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot antihacker777]Так я же пишу, мне нужно добавить, а из добавленной записи вернуть гуид, что бы отправить для активации.

По этому не могу понять categories.Rows[0]["Identity"] - Это ваш ID

Что значит мой ?[/quot ]

То и значит, что ID которое Вы ищите.
Если нужно именно GUID, то были мои примеры выше.
Меняем процедуру на

Код: sql
1.
2.
3.
4.
5.
6.
7.
ALTER PROCEDURE [dbo].[InsertCategory]
@username nvarchar(15)
AS
Declare @ud uniqueidentifier 
Select @ud = NEW_ID()
INSERT INTO UserLcTBL (username, UserGUID) VALUES(@username, @ud  )
SELECT [Identity] = @ud



Текс в C# остается прежний
только categories.Rows[0]["Identity"] - это уже ваш GUID который можно кидать в ссылку

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1104164&msg=16278889
...
Рейтинг: 0 / 0
25 сообщений из 150, страница 3 из 6
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Регистрация на сайте.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]