Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / GUID из бейсика на сервер / 23 сообщений из 23, страница 1 из 1
13.11.2003, 16:48
    #32323385
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID из бейсика на сервер
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
13.11.2003, 16:52
    #32323394
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID из бейсика на сервер
.Parameters("@pId").Type=adGUID

==

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

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

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

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

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

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
14.11.2003, 11:23
    #32324143
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID из бейсика на сервер
Так работает - проверил
Правда передаем как строку (и так же принимае) и далее используем функции 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
14.11.2003, 13:04
    #32324349
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID из бейсика на сервер
Спасибо, но у меня обратная задача. У меня есть гвид внутри варианта, надо затолкать его на сервер. Есть идея использовать для преобразования поле формы.
...
Рейтинг: 0 / 0
14.11.2003, 14:31
    #32324535
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID из бейсика на сервер
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
17.11.2003, 12:40
    #32326069
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID из бейсика на сервер
Автор вопроса продолжил тему в новом топике:\r
\r
/topic/59267
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / GUID из бейсика на сервер / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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