powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / GUID из бейсика на сервер
23 сообщений из 23, страница 1 из 1
GUID из бейсика на сервер
    #32323385
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADP
Пишу
Dim lExpenseId As Variant
lExpenseId = Forms("frm5Expense")!fId
With fnADOCommand("sp551ExpenseMaxPos")
.Parameters("@pId") = lExpenseId
.Execute , , adExecuteNoRecords
lPos = .Parameters("@pPos")
End With
а оно мне на .execute
Invalid character value for cast specification
как из гвида строку для скуэль сервера сделать? Такой фак написали про всякие там даты с числами, про которые и так все ясно. Написали б че нибудь про гУИД
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323394
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Parameters("@pId").Type=adGUID

==

Лучше бы ты параметры присваивал через cmd.Parametеrs.Append cmd.CreateParametrs(...) делал. В этом случае акес не дергает сервер попусту
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323403
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, счас попробую
fnADOCommand- это хитрая пропертя, которая все че надо делает, так-что сервер попусту не дергается.
А все-ж может у кого есть готовая процедурка, которая из гвида красивую строку делает для динамического SQL. Опять же в факе бы увековечили:-)
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323410
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, не пашет.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323414
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>fnADOCommand- это хитрая пропертя, которая все че надо делает, так-что сервер попусту не дергается

Дергается
Ты профайлер запусти.
При .Parameters("@pId") = lExpenseId происходит неявный вызов .Parameters.Refresh.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323420
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Не, не пашет.

А lExpenseId (который типа гуид) как получаешь
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323422
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же написал: пропертя хитрая. Рефреш делается явно и заранее, один раз при старте приложения. Не мучте мою пропертю:-), она хорошая, лучше про гвид расскажите.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323431
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А lExpenseId (который типа гуид) как получаешь
lExpenseId = Forms("frm5Expense")!fId
У нее источник записей -бесхитростная таблица, у которой поле fId-типа uniqueidentifier
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323437
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде были какие-то функции StringToGUID, GUIDToString или что-то вроде этого... Попробуй их поискать и помучать.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323445
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Вроде были какие-то функции StringToGUID, GUIDToString или что-то вроде этого... Попробуй их поискать и помучать.

Дык давно. Параша это. Не делают они ни хрена.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323457
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StringFromGuid- та же херня, GuidFromString- ActiveX component can't create object
Где они там эктивикс нашли..
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323460
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Придется кажися самому из байтиков буковки делать:-)
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323464
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Придется кажися самому из байтиков буковки делать:-)

Так у тебя на сервере буковки ... или байтики
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323473
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323474
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык весь вопрос в том, как их ему скормить. Хотя через таблицу он хавает. Те если я этот свой вариант вставляю в таблицу с полем ГВИД, то он хавает. Это мне чтож, толкать вариант в дурацкую таблицу, а потом процедурой ту таблицу читать? Изврат какой-то.
Попробую ручками строчку эту противную собрать. Хотя как из варианта какие-нибудь осмысленные данные вытянуть, я еще не придумал.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323475
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Parameters("@pId").Size=36
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323490
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Parameters("@pId").Size=36
один хрен
За ссылки большое спасибо. У меня тоже про эктивикс, и переменная вариант, когда в отладчике на нее курсор наводишь, восьмью вопросиками изображается. Поди мне чиго то надо из OLe32.dll объявить.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323504
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я похоже решил свой трамблема. Я просто без варианта толкаю значение поля, и она, похоже, это хавает. Вариант с гвидом как-то коряво работает. Но вопрос получения строки из гвида остается актуальным. В смысле есть у меня поле с гвидом внутри, хочу строку с фигурными скобочками и минусиками.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32323977
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Усе равно не пашет.
С помощью Виктора нашел такой пример:

Option Compare Database
Option Explicit
Private Declare Function CoCreateGuid Lib "OLE32.DLL" _
(pGuid As GUID) As Long
Private Declare Function StringFromGUID2 Lib "OLE32.DLL" _
(pGuid As GUID, ByVal PointerToString As Long, _
ByVal MaxLength As Long) As Long
Private Const GUID_OK As Long = 0
Private myGUID As String
Private Type GUID
Guid1 As Long
Guid2 As Integer
Guid3 As Integer
Guid4(0 To 7) As Byte
End Type

Public Function getGUIDKey() As String
Const MAX_GUID_LENGTH As Long = 38
Dim udtGUID As GUID
Dim strGUID As String
Dim lngRetCode As Long
lngRetCode = CoCreateGuid(udtGUID)
If lngRetCode = GUID_OK Then
strGUID = String(MAX_GUID_LENGTH, 0)
StringFromGUID2 udtGUID, StrPtr(strGUID), _
MAX_GUID_LENGTH + 1
Else
strGUID = ""
End If
getGUIDKey = strGUID
End Function

Он пашет. Но я все равно не могу понять, как мне запихать туда свой вариант. Иначе говоря, как преобразовать вариант с 16 байтами внутри во что-то удобосъедаемое. Как следует из примера strptr- это указатель на переменную(в хелпе не нашел, кстати). А как присвоить указателю переменной чего-нибудь?
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32324143
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так работает - проверил
Правда передаем как строку (и так же принимае) и далее используем функции Convert
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ALTER PROCEDURE dbo.StoredProcedure1
(@p char( 38 ))
AS
	 SET NOCOUNT ON 
	SELECT     i, g
	FROM         _tempTable
	WHERE     (g =convert(uniqueidentifier, @p) )
	 
	RETURN  1 


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub g()
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command

With cmd
.ActiveConnection = CurrentProject.Connection
.CommandType = adCmdStoredProc
.CommandText =  "StoredProcedure1" 
.Parameters.Append .CreateParameter( "@p" , adChar, adParamInput,  38 ,  "{08249F71-3780 - 4784 -9DF8-D6C766CE569A}")
Set rs = .Execute()

End With
Set cmd = Nothing

Debug.Print rs.GetString
rs.Close: Set rs = Nothing

End Sub
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32324349
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но у меня обратная задача. У меня есть гвид внутри варианта, надо затолкать его на сервер. Есть идея использовать для преобразования поле формы.
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32324535
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(lpDest As Any, _
lpSource As Any, ByVal cbCopy As Long)

Function test2()
Dim i As Integer
Dim b(1 To 16) As Byte
'{55F02701-77DA-4DF0-9E78-D6DDB1C21134}
CopyMemory b(1), ByVal StrPtr(DLookup("fId", "t5Expense")), 16
For i = 1 To 16
Debug.Print Hex(b(i));
Next
End Function
...
Рейтинг: 0 / 0
GUID из бейсика на сервер
    #32326069
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Автор вопроса продолжил тему в новом топике:\r
\r
/topic/59267
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / GUID из бейсика на сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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