Прямой SQL

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Прямой SQL

Сообщение zna »

Den писал(а):т.е. если Вы пишете , например, в саппорт

Код: Выделить всё

sql select atl_lastdate from katorg;
у Вас в поле выборки число, а не дата ?
В саппорте проверил- дата возвращается, не число. А в интерфейсе - число

Код: Выделить всё

...
  i := 0;
  while sqlFetch(stmt) = tsOk do
  {
    i := i + 1;
    var date1: string[10];
    date1:= AssemdleDate(date1D, date1M, date1Y);  //  date1D, date1M, date1Y и nodo- это прибинденные переменные 
    Message(string(i)+': nodo = '+nodo+'; date1 = '+date1); // Так нормально дата собирается
  }
  sqlFreeStr(strHandle);
...
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Прямой SQL

Сообщение Den »

а date1D, date1M, date1Y - числовые у Вас почему ?
что мешает дату передать сразу то..

ну если уж так важно это то сразу одной функцией dsql

Sql Function Int_To_date(
d : longint
):string;
var
s : string;
{
s:=cast( cast(day(datetime(d,0)) as string)
+'/'+cast(month(datetime(d,0)) as string)
+'/'+cast(year(datetime(d,0)) as string)
as string);
return s;
}
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Прямой SQL

Сообщение zna »

А, так cast можно применить? Отлично, увидел в документации! Благодарю!
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Прямой SQL

Сообщение zna »

Ещё вопрос по теме, коллеги. Интерфейс, использующий закрос прямого sql, от имени пользователя- администратора "Галактики", работает нормально. А от обычного пользователя- нет, выдаёт пустую выборку, хотя права на таблицы этому пользователю в "Протекте" даны. Подозреваю, что нужно какие-то права дать пользователю на уровне MS SQL (у нас 2008, галактика 8.10)?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Прямой SQL

Сообщение Den »

Для начала можно посмотреть в ms70drv.log
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Прямой SQL

Сообщение edward_K »

+ в протекте поставить внизу галочки - типа расширенные права для DSQL. Если у вас используются какие то функции, то можно задать права на них по группам на соотв. закладке.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Прямой SQL

Сообщение zna »

Den писал(а):Для начала можно посмотреть в ms70drv.log
Отличная идея. Имею:
25.02.2014 11:29:02 [DULATINA]:
42000: [Microsoft][ODBC SQL Server Driver][SQL Server]Запрещено разрешение "EXECUTE" на объект "S$INTDATETOSTRING" базы данных "grmks", схемы "dbo".
25.02.2014 11:29:02 [DULATINA]:
HY010: [Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Прямой SQL

Сообщение zna »

edward_K писал(а):+ в протекте поставить внизу галочки - типа расширенные права для DSQL. Если у вас используются какие то функции, то можно задать права на них по группам на соотв. закладке.
Имею вот что:Изображение
Новая функция недоступна.
Сделал доступ, пересчитал права- выборка прошла нормально! Благодарю! :-)
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Прямой SQL

Сообщение Алексей »

а можно из интерфейса галактики сделать запрос на DSQL к другой БД на другому SQL сервере?
если да, то можно примерчиr?
sth73
Постоянный гость
Сообщения: 52
Зарегистрирован: 29 ноя 2005, 19:47

Re: Прямой SQL

Сообщение sth73 »

Алексей писал(а):а можно из интерфейса галактики сделать запрос на DSQL к другой БД на другому SQL сервере?
если да, то можно примерчиr?
У нас на таким образом между собой связаны 2 БД галактики и еще одна БД негалактики.
СУБД оракл. Связь через dblink.
В принципе если надо просто получить данные из сторонней БД, то нет разницы какой запрос выполнять, к своей БД или к какой-то другой, лишь бы синтактически запрос к сторонней БД был правильный.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Прямой SQL

Сообщение Den »

Алексей писал(а):а можно из интерфейса галактики сделать запрос на DSQL к другой БД на другому SQL сервере?
если да, то можно примерчиr?
http://tyumbit.ru/gal_forum/viewtopic.php?f=8&t=10938
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Прямой SQL

Сообщение Алексей »

sth73 писал(а):
Алексей писал(а):а можно из интерфейса галактики сделать запрос на DSQL к другой БД на другому SQL сервере?
если да, то можно примерчиr?
У нас на таким образом между собой связаны 2 БД галактики и еще одна БД негалактики.
СУБД оракл. Связь через dblink.
В принципе если надо просто получить данные из сторонней БД, то нет разницы какой запрос выполнять, к своей БД или к какой-то другой, лишь бы синтактически запрос к сторонней БД был правильный.
а если базы на разных MS SQL серверах, возможно?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Прямой SQL

Сообщение Den »

Алексей писал(а):
sth73 писал(а):
Алексей писал(а):а можно из интерфейса галактики сделать запрос на DSQL к другой БД на другому SQL сервере?
если да, то можно примерчиr?
У нас на таким образом между собой связаны 2 БД галактики и еще одна БД негалактики.
СУБД оракл. Связь через dblink.
В принципе если надо просто получить данные из сторонней БД, то нет разницы какой запрос выполнять, к своей БД или к какой-то другой, лишь бы синтактически запрос к сторонней БД был правильный.
а если базы на разных MS SQL серверах, возможно?
Например , посредством :
http://yandex.ru/yandsearch?text=linked ... 0sql&lr=16
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Прямой SQL

Сообщение Алексей »

в саппорте:
работает

Код: Выделить всё

sql select saldmoun.sums, saldmoun.datesal from saldmoun where
    '408'    = saldmoun.scheto
and '3'      = saldmoun.subossch;
возвращает пусто

Код: Выделить всё

sql select saldmoun.sums, saldmoun.datesal from saldmoun where
    '408'    = saldmoun.scheto
and '3'      = saldmoun.subossch
and datesal=convert(datetime,'01/03/2014',104);
как конвертировать дату для запросов?
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Прямой SQL

Сообщение zna »

Через функцию (Den дал)

Код: Выделить всё

Sql Function IntDateToString(d: longint):string[10];
    var s: string;
    {s:=cast(cast(day(datetime(d,0)) as string) + '/' + cast(month(datetime(d,0)) as string) + '/' + cast(year(datetime(d,0)) as string) as string); return s;}
...
  SQLAddStr(strHandle, 'select top 30000 IntDateToString(basedoc.ddoc), katorg.name, cast(coalesce(katsopr.summa,0) as string), basedoc.NODOC');          

Для пользователей- не админов надо доступ в саппорте на эту функцию дать.
Ответить