Имя: Пароль:
1C
 
Выборка запроса в delphi к 1С
,
0 AndreyV62
 
28.06.16
15:46
Connector := CreateOleObject('V82.COMConnector');
    Server := Connector.Connect(ConnStr);
    Query := Server.NewObject('Запрос');
    Query.Text := SQL;
    Rslt := Query.Execute();
    Choose := Rslt.Choose();

   //пример пробежки, но как значения поместить в Dbgrid

    while Choose.Next() do
    begin
      ShowMessage( String(Choose.GUID));
    end;
1 vde69
 
28.06.16
15:50
ты хвастаешь или чего? в чем вопрос?
2 Ёпрст
 
28.06.16
16:01
(1) но как значения поместить в Dbgrid?
3 Sonny
 
28.06.16
16:02
(0) А на Фортране можешь? Или хотя бы Фокспро.
4 vde69
 
28.06.16
16:04
(2) на сколько мне не изменяет склероз все Db____ работают только с источниками данных, то есть ему нужен DBE источник к 1с, тогда все просто будет, но 1с это не поддерживает...

по этому сабж не решается без эмуляции драйвера, что автору явно не под силу...

автору советую взять обычный грид и пихать данные в него...
5 mehfk
 
28.06.16
16:06
Задание в учебнике: Дано (0). Придумай вопрос и реши задачу.
6 vde69
 
28.06.16
16:07
(4) +
то есть отказаться от динамической таблицы в пользу обычной...


ну и второе почему это именно так: дбгрид это компонент не для показа а для редактирования источника данных, то есть он обратно должен иметь апдейты :)
7 Господин ПЖ
 
28.06.16
16:07
>автору советую взять обычный грид и пихать данные в него...

+1

dbgrid скорее всего забинден на какой-нибудь рекодсет, описываемый в его свойствах = провайдер + запрос
8 vde69
 
28.06.16
16:08
(7) так и есть, там требуется DBE провайдер...
9 Sonny
 
28.06.16
16:13
BDE, а не DBE.
Хорошо, что студенты нынче не используют это скопище мерзости. Столько дряного софта на нем понаписали, до сих пор еще не сдох кое-где.
10 AndreyV62
 
28.06.16
16:15
Я взял это с форума. Но кусок
     ShowMessage( String(Choose.GUID));
даёт ошибку.
'Method 'GUID' not supported by automation object'.
В чём может быть проблема?
11 Зая Бусечка
 
28.06.16
16:16
А что такое GUID в твоём запросе?
12 AndreyV62
 
28.06.16
16:28
Сложно сказать.
Подскажите как вывести допустим первую колонку запроса.
13 Ёпрст
 
28.06.16
16:28
(12) ты текст запроса то покажи хоть
14 vde69
 
28.06.16
16:29
(12) в отладчике посмотри чему равен Query.Text  

и выведи сюда....
15 Ёпрст
 
28.06.16
16:29
+13 если не знаешь что это, подсказываю

Query.Text := SQL;
ShowMessage( SQL); //показывай
16 AndreyV62
 
28.06.16
16:39
SQL := 'Выбрать первые 10 ССылка как Доверенность, Номер,Дата из Документ.Доверенность';
17 vde69
 
28.06.16
16:41
(16) это не запрос а мусор...

выбрать от куда??? отсутствует "ИЗ"
18 Dotoshin
 
28.06.16
16:42
(17) не отсутствует - из Документ.Доверенность
19 vde69
 
28.06.16
16:42
(17) стоп, я лоханулся :)

но запрос все равно неверный...
20 Зая Бусечка
 
28.06.16
16:43
(16) И где там GUID?
21 AndreyV62
 
28.06.16
16:43
SQL := 'Выбрать первые 10 ССылка как Доверенность, Номер,Дата ИЗ Документ.Доверенность';

Нормально отрабатывает из консоли запросов 1С
22 Dotoshin
 
28.06.16
16:43
(16) У тебя первая колонка называется - Доверенность, вместо русскоязычных псевдонимов полей нужно написать англоязычные, тогда к ним можно будет обратиться из дельфей
23 Dotoshin
 
28.06.16
16:45
Например вместо ССылка как Доверенность напиши ССылка как GUID
24 vde69
 
28.06.16
16:46
(23) это поле какой таблицы??? таблицу забыли поименовать...
25 Dotoshin
 
28.06.16
16:49
(24) Ок.
Тогда так:SQL := 'Выбрать первые 10 ДокументДоверенность.ССылка как GUID, Номер,Дата ИЗ Документ.Доверенность как ДокументДоверенность';
Независимо от того, куда вы едете — это в гору и против ветра!