Страница 1 из 1
Уточнение
Добавлено: 15 Август 2006, 12:44
And234
Закончил прогу и прошу уточнить несколько вопросов.
1) При запуске программы, (строку источника положил в глобальную переменную для путь файла в словаре)
при неверном соединении выдает виндовское окно выбора источника соединения.
Я хочу сделать так чтоб при загрузке тестировалось соединение(это сделано) и если оно неверно то выдавал окно настройки соединения (созаное мной в моей программе)
Т.Е. убрать виндовское окно.
2) хочу выполнить скрипт SQL(создание новой базы данных на серваке) через MAVLOAD, но ей необходимо чтото подсовывать в виде результата выполнения.
Добавлено: 16 Август 2006, 6:58
Денис
а зачем скрипт засовывать в MAVLOAD? есть целый класс MAVExecute, как раз подойдет
Re: Уточнение
Добавлено: 16 Август 2006, 8:26
DimOn
And234 писал(а):1) При запуске программы, (строку источника положил в глобальную переменную для путь файла в словаре)
при неверном соединении выдает виндовское окно выбора источника соединения.
Я хочу сделать так чтоб при загрузке тестировалось соединение(это сделано) и если оно неверно то выдавал окно настройки соединения (созаное мной в моей программе)
У функции MAVCONNECT есть третий параметр, который отвечает за появление стандартного окна соединения ODBC драйвера. Подробности тут -
http://forum.clarionlife.net/viewtopic.php?t=1530
Re: Уточнение
Добавлено: 16 Август 2006, 10:42
Admin
And234 писал(а):
Я хочу сделать так чтоб при загрузке тестировалось соединение(это сделано)
Кусок кода можешь показать как сделал?
Добавлено: 25 Август 2006, 9:34
And234
Кусок кода можешь показать как сделал?
не туда код влепил, смотрите
http://forum.clarionlife.net/viewtopic.php?p=7014#7014
Добавлено: 25 Август 2006, 9:55
And234
Процедура такая
Код: Выделить всё
CREATE PROCEDURE sp_DeleteStudent
@idStud numeric(6,0)
AS
if exists (select idArrival from Arrival where idStud=@idStud)
Begin
declare @fd bit
set @fd=(select flagdelStud from Student where idStud=@idStud)
if (@fd is null)or(@fd=0)
UPDATE Student SET flagdelStud = 1 WHERE idStud = @idStud
else
UPDATE Student SET flagdelStud = 0 WHERE idStud = @idStud
end
else
delete Student where idStud=@idStud
select 1
GO
Код по вызову
приблизительно такой
Код: Выделить всё
MAV:WindowManager.NewReport PROCEDURE
QDriver QUEUE
end
APP_glo CLASS(APPGM)
end
CODE
close(outtext)
Create(OutTEXT)
Share(OutText)
DateBeginYear=APP_glo.toBeginLearnYear(glo_DateLast)
if MAVLOAD('sp_MonthRevolutionResult'&APP_glo.toSQLDT(DateBeginYear)&','&APP_glo.toSQLDT(DateBeginMonth)&','&APP_glo.toSQLDT(DateEndMonth)&','&APP_glo.toSQLDT(glo_DateLast),QDriver) then
MAVSHOWERROR('Ioeaea io?aoa| ia?aoeoanu e ?ac?aaio?eeo')
else
FastI = RECORDS(QDriver)
LOOP I = 1 TO FastI
GET(QDriver,I)
If FacOUT<>QDriver.IDFac then
If clip(FacOUT)='' then
Если убрать строку возврата Select 1 то выдает ошибку
При создании новых структур данных на SQL сервере возврат как то не в тему
Добавлено: 28 Август 2006, 8:38
Andrew™
And234 писал(а):Если убрать строку возврата Select 1 то выдает ошибку
При создании новых структур данных на SQL сервере возврат как то не в тему
правильно, MAVLOAD это по определению - получить результат , если в ХП нету такового то и будет ошибка, для твоего случая раз нету получения результата надо воспользоваться соответсвующим классом для выполнеия ХП - MAVExecSP
Код: Выделить всё
sql MAVExecSP
tmp DECIMAL(6,0)
CODE
tmp = 1
sql.BindParameter(tmp)
IF sql.Run('sp_DeleteStudent')
MAVSHOWERROR
END
и глянь во что превращается данный код в трассе