Имя: Пароль:
1C
 
Из 8 работать с базой SQL не 1с - как?
0 mdv92
 
19.11.10
15:26
Подключиться уже удалось! Где бы взять набор основных функций?
1 eklmn
 
гуру
19.11.10
15:32
че сказал - сам сказал
2 ДенисЧ
 
19.11.10
15:34
смотря как подключаешься...
3 Оболтус
 
19.11.10
15:36
В справочнике по T-SQL?
4 mdv92
 
19.11.10
15:57
Я слов не знаю волшебных!
Пока ЗаписиSQL.EOF=0 Цикл    // Заполнение созданной таблицы
   
  НоваяСтрока =  Таблица.Добавить();
  Для НомерСтолбца = 0 По ЗаписиSQL.Fields.Count-1 Цикл
   НоваяСтрока.Установить(НомерСтолбца,ЗаписиSQL.Fields(НомерСтолбца).Value);
   //Сообщить ("Test " + ЗаписиSQL.Fields(ИмяСтолбца).Value + ИмяСтолбца);
  КонецЦикла;
         
  ЗаписиSQL.MoveNext();
   
 КонецЦикла;
Везде один и тот же кусочек!
А мне нужен запрос по 2 полям. Как его написать?
(если по-русски - выбрать все, у которых статус =1 и Дата>01/01/2010)
Это, чтоб считать, а еще - заменить одну "строчку", найденную по ключу - на другую. (ну, или поля в этой записи)
И всё!!
5 КМ155
 
19.11.10
16:00
(4)[Везде один и тот же кусочек! ]
брехло
даже на мисте про ADODB всё разжёвано
6 mdv92
 
19.11.10
16:01
(3) T-SQL - это toy-sql? А он не платный? Надо откуда-то библиотек брать? Может, мне для 2 функций это не надо?
7 mdv92
 
19.11.10
16:01
(5) Там написано - доступ к архиву закрыт.
Я видела заманчивый текст в яндексе! Но ссылка не работает.
8 Жан Пердежон
 
19.11.10
16:02
(6) гугл открой что ли для разнообразия
9 КМ155
 
19.11.10
16:05
(7) развод
10 mdv92
 
19.11.10
16:05
По форуму тяженло искать, птому что находишь кучу вопросов - без ответа. Или в конце - "да, я сам разобрался!"
11 andrey153
 
19.11.10
16:09
Select <field1>, <field2> From Table1
:)
12 mdv92
 
19.11.10
16:11
(11) Мне так мало надо, что осталось это чуть-чуть разжевать, и заработает!
Выбрать мне надо все поля по 2 условиям.
Это как? И что я получу в тоге? Кда надо поместить результат запроса?
13 Живой Ископаемый
 
19.11.10
16:13
2(10) " Или в конце - "да, я сам разобрался!"" - это обычно происходит после того как они наконец открывают книгу или гугл...
14 mdv92
 
19.11.10
16:15
ТекстСелект = "SELECT НомерСчета,ДатаВыписки,КодКлиента, count(*) FROM ппп GROUP BY НомерСчета,ДатаВыписки,КодКлиента";

НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
Попытка
НаборЗаписей=MBD.Execute(ТекстСелект);
Исключение Сообщить(ОписаниеОшибки());
КонецПопытки;
Попытка НаборЗаписей.MoveFirst();
Исключение //табилца пустая
Сообщить(ОписаниеОшибки());
НаборЗаписей.Close();
Возврат;
КонецПопытки;


Пока НаборЗаписей.EOF()=0 цикл
Дата = Строка(НаборЗаписей.Fields("ДатаВыписки").Value);
КодЗаказа = Строка(НаборЗаписей.Fields("НомерСчета").Value);
КодКлиента = Строка(НаборЗаписей.Fields("КодКлиента").Value);

Где-то нашла!
Смущает только то, что перед текстом задан вопрос - "А почему это у меня не работает?
15 mdv92
 
19.11.10
16:19
Думаю, что с этим кусочком я разберусь.
Всё понятно, кроме запроса. Значения для отбора там есть?
Пока совсем непонятно, как в базе заменить строку на другую (значения в ней)
16 hhhh
 
19.11.10
16:20
(9) не, без дураков, чего-то сегодня архив закрыт.
17 Diabolicum 1C
 
19.11.10
16:22
(0) Кури T-SQL (Transact SQL). Без знания языка запросов, ни о каких ADODB и речи быть не может
18 mdv92
 
19.11.10
16:24
(17) Мне пока очень мало надо.
А будет надо больше - обязательно начну курить!
19 КМ155
 
19.11.10
16:24
(17) не факт
у оракла или MySql нет  T-SQL
20 Diabolicum 1C
 
19.11.10
16:25
(19) Согласен. Но как мне кажется речь все таки идет о MS SQL. Хотя я конечно могу и ошибаться:)

Но синтаксис запроса выборки данных знать нужно по-любому:)
21 shishkin1966
 
19.11.10
16:27
могу кучу такого же добра кинуть
// Функция выполняет SQL запрос без параметров и возвращает Таблицу Значений
Function Выполнить_Запрос_SQL(val ТекстЗапроса,Connection,Transactional) export
 ТаблицаЗначенийРезультата = Новый ТаблицаЗначений;
 
 if isnull(ТекстЗапроса) or isnull(Connection) then
   return ТаблицаЗначенийРезультата;  
 endif;  
 
 try
   ADODBError = false;

   Cmd = Новый COMОбъект("ADODB.Command");
   Cmd.ActiveConnection = Connection;
 
   Cmd.CommandText = ТекстЗапроса;
   if isnull(Cmd.CommandType) then
     Cmd.CommandType = КонстантаCommandType("adCmdUnknown");
   endif;  

   RecordSet = Новый COMОбъект("ADODB.RecordSet");
   
   if Transactional then
     Connection.Execute("BEGIN TRANSACTION");
     Connection.Execute("set implicit_transactions off");
   endif;  
   
   RecordSet = Cmd.Execute(); //Выполнение и получение набора данных
   
   if Transactional then
     Connection.Execute("Commit");
   endif;  
   
   if RecordSet.State = 1 then
     // заполняем ТЗ
     for i = 0 to RecordSet.Fields.Count - 1 do //Создание и добавление колонок
       ColumnName = RecordSet.Fields.Item(i).Name;
       ColumnType = GetTypeColumn(RecordSet.Fields.Item(i).Type,RecordSet.Fields.Item(i).ActualSize);
     
       if isnull(ColumnType) then
         ТаблицаЗначенийРезультата.Колонки.Добавить(ColumnName);
       else  
         ТаблицаЗначенийРезультата.Колонки.Добавить(ColumnName,ColumnType);
       endif;  
     enddo;

     while RecordSet.EOF = 0 do // Заполнение созданной таблицы
       НоваяСтрока =  ТаблицаЗначенийРезультата.Добавить();
       for НомерСтолбца = 0 По RecordSet.Fields.Count - 1 do
         НоваяСтрока.Установить(НомерСтолбца,RecordSet.Fields(НомерСтолбца).Value);
       enddo;
       RecordSet.MoveNext();
     enddo;  
     RecordSet.close();
   endif;  
   
   Cmd = NULL;
   RecordSet = NULL;
 except
   ADODBError = true;
   if Transactional then
     RollbackSQLTransaction(Connection);
   endif;  
   Предупреждение("Невозможно выполнить запрос: "+ТекстЗапроса+". " + ОписаниеОшибки(),0,"Внимание !");
   Message("Невозможно выполнить запрос: "+ТекстЗапроса);
 endtry;        
 return ТаблицаЗначенийРезультата;  
endfunction

Function Выполнить_Запрос_SQL_Результат(val ТекстЗапроса,Connection,Transactional) export
 ТЗ = Выполнить_Запрос_SQL(ТекстЗапроса,Connection,Transactional);
 if ТЗ.count() <> 1 then
   return NULL;
 endif;
 return ТЗ.ВыгрузитьКолонку(0)[0];
endfunction

Function Выполнить_Запрос_SQL_RS(val ТекстЗапроса,Connection) export
 RS = Новый COMОбъект("ADODB.RecordSet");
 try
   ADODBError = false;
   
   RS.Open(ТекстЗапроса,Connection,2,3,1);
 except
   ADODBError = true;
   
   Предупреждение("Невозможно выполнить запрос: "+ТекстЗапроса+". " + ОписаниеОшибки(),0,"Внимание !");
   Message("Невозможно выполнить запрос: "+ТекстЗапроса);
 endtry;        
 return RS;
endfunction

// Функция выполняет SQL запрос с параметрами и возвращает Таблицу Значений
Function Выполнить_Запрос_SQL_Параметры(val ТекстЗапроса,Connection,Параметры) export
 ТаблицаЗначенийРезультата = Новый ТаблицаЗначений;
 
 if isnull(ТекстЗапроса) or isnull(Connection) then
   return ТаблицаЗначенийРезультата;  
 endif;  
 
 try
   ADODBError = false;
   
   Cmd = Новый COMОбъект("ADODB.Command");
   Cmd.ActiveConnection = Connection;
 
   Cmd.CommandText = ТекстЗапроса;
   if isnull(Cmd.CommandType) then
     Cmd.CommandType = КонстантаCommandType("adCmdUnknown");
   endif;  

   if Параметры.Count() > 0 then
     ПараметрЗапроса = Новый COMОбъект("ADODB.Parameter");
     
     for each КлючИЗначение in Параметры do
       if isnull(КлючИЗначение.Значение) then
         Cmd = NULL;
         return ТаблицаЗначенийРезультата;  
       endif;      
       P = ParameterADO(КлючИЗначение);
       ПараметрЗапроса = Cmd.CreateParameter(P.Name,P.Type,P.Direction,P.Size,P.Value);
       Cmd.Parameters.Append(ПараметрЗапроса)
     enddo;  
   endif;  
   
   RecordSet = Новый COMОбъект("ADODB.RecordSet");
   RecordSet = Cmd.Execute(); //Выполнение и получение набора данных
 
   // заполняем ТЗ
   if RecordSet.State = 1 then
     for i = 0 to RecordSet.Fields.Count - 1 do //Создание и добавление колонок
       ColumnName = RecordSet.Fields.Item(i).Name;
       ColumnType = GetTypeColumn(RecordSet.Fields.Item(i).Type,RecordSet.Fields.Item(i).ActualSize);
     
       if isnull(ColumnType) then
         ТаблицаЗначенийРезультата.Колонки.Добавить(ColumnName);
       else  
         ТаблицаЗначенийРезультата.Колонки.Добавить(ColumnName,ColumnType);
       endif;  
     enddo;

     while RecordSet.EOF = 0 do // Заполнение созданной таблицы
       НоваяСтрока =  ТаблицаЗначенийРезультата.Добавить();
       for НомерСтолбца = 0 По RecordSet.Fields.Count - 1 do
         НоваяСтрока.Установить(НомерСтолбца,RecordSet.Fields(НомерСтолбца).Value);
       enddo;
       RecordSet.MoveNext();
     enddo;  
     RecordSet.close();
   endif;
   
   Cmd = NULL;
   RecordSet = NULL;
 except
   ADODBError = true;
   
   Предупреждение("Невозможно выполнить запрос: "+ТекстЗапроса+". " + ОписаниеОшибки(),0,"Внимание !");
   Message("Невозможно выполнить запрос: "+ТекстЗапроса);
 endtry;        
 return ТаблицаЗначенийРезультата;  
endfunction
22 КМ155
 
19.11.10
16:29
(20)[Но синтаксис запроса выборки данных знать нужно по-любому]
если в запросе нет дат и джойнов
то синтаксис универсален:
Select From Where

но у ТС есть дата,
тут и сказочке конец
23 Diabolicum 1C
 
19.11.10
16:33
(22) ну форматнуть дату и задать в качестве текста в запрос
24 mdv92
 
19.11.10
16:43
(21) спасибо! И главеное, нет приписки, что не работает!
25 Невский Александр
 
19.11.10
16:47
(21) хорошая вещь :)
26 shishkin1966
 
19.11.10
16:50
убери все неизвестные функции и вперед. Если надо дам оставшиеся функции типа IsNULL и прочее. Если надо - давай мыло - скину все функции.
27 shishkin1966
 
19.11.10
16:53
у меня живой редактор табличного поля с добавлением/удалением записей на ADO сделан.
http://infostart.ru/public/75151/
28 КМ155
 
19.11.10
16:53
(23)[ну форматнуть дату]
у mdb будут #
у MS SQL будут /
у MySql точки и обратный порядок
29 mdv92
 
19.11.10
16:54
Выбираю нужное из 21!

ТекстЗапроса="Select * from TRESERV where status=0 or status=1";

Cmd = Новый COMОбъект("ADODB.Command");
Cmd.ActiveConnection = Connection;  
Cmd.CommandText = ТекстЗапроса;
RecordSet = Новый COMОбъект("ADODB.RecordSet");    
RecordSet = Cmd.Execute();
Пока RecordSet.EOF()=0 цикл
КодЗаказа = Строка(RecordSet.Fields("НомерСчета").Value);
КонецЦикла;
30 mdv92
 
19.11.10
16:55
mdv92@mail.ru
А в том, что я выбала (29) уже ничего лишнего нет?
Мне нужно оба COMОбъект?
31 МихаилМ
 
19.11.10
16:58
(21)
обработчик ошибок - отварительный и источник ошибок сам по себе.

глупо весь код в  try exept засовывать
какая ошибка произошла - не поймешь
и не локализаешь.

тем более с предупреждением в exept.
(а если код на сервере выполняется )

нетипизорованые столбцы в ТЗ
- тоже мерзость и халтура.
32 shishkin1966
 
19.11.10
16:59
это должно работать
но с такими преобразованиями надо быть осторожно
типы ADO и 1С не совпадают !!!

КодЗаказа = Строка(RecordSet.Fields("НомерСчета").Value);

сейчас кину модуль - все нужные функции вытащите
33 МихаилМ
 
19.11.10
17:00
+(31) отчасти поэтому я код и не даю.
чтоб всякие не критпковали.
34 shishkin1966
 
19.11.10
17:00
письмо ушло
35 shishkin1966
 
19.11.10
17:05
(31) в try вываливается по первой же ошибке. На сервер не передашь "ругательное" слово (никак его не запомню, те которые меняются) параметров. И зачем мне его выполнять данную функцию на сервере ? Кто скажет - все равно результат тащить на клиента. Зачем она нужна на сервере?
36 Diabolicum 1C
 
19.11.10
17:07
(28) Естественно, но вряд ли стоит задача написать универсальное решение для любой БД. А под конкретную СУБД дату можно отформатировать соответственно с требованиями
37 Живой Ископаемый
 
19.11.10
17:08
мутабельный? как это можно не запомнить?
38 mdv92
 
19.11.10
17:08
(34) Спасибо!
39 IKSparrow
 
19.11.10
17:09
(16) Архив будет платным.
40 mdv92
 
19.11.10
17:09
(33) Как известно, ни одно доброе дело не остается безнаказанным.
41 shishkin1966
 
19.11.10
17:11
(31) и кстати если можете дайте полный список типов ADO <-> 1С
Field Type  - DataTypeEnum
Specifies the data type of a Field, Parameter, or Property. The corresponding OLE DB type indicator is shown in parentheses in the description column of the following table. For more information about OLE DB data types, see Chapter 13: Data Types in OLE DB and Appendix A: Data Types of the OLE DB Programmer's Reference.
Constant    Value    Description
AdArray
(Does not apply to ADOX.)    0x2000    A flag value, always combined with another data type constant, that indicates an array of that other data type.
adBigInt    20    Indicates an eight-byte signed integer (DBTYPE_I8).
adBinary    128    Indicates a binary value (DBTYPE_BYTES).
adBoolean    11    Indicates a boolean value (DBTYPE_BOOL).
adBSTR    8    Indicates a null-terminated character string (Unicode) (DBTYPE_BSTR).
adChapter    136    Indicates a four-byte chapter value that identifies rows in a child rowset (DBTYPE_HCHAPTER).

adChar    129    Indicates a string value (DBTYPE_STR).
adCurrency    6    Indicates a currency value (DBTYPE_CY). Currency is a fixed-point number with four digits to the right of the decimal point. It is stored in an eight-byte signed integer scaled by 10,000.
adDate    7    Indicates a date value (DBTYPE_DATE). A date is stored as a double, the whole part of which is the number of days since December 30, 1899, and the fractional part of which is the fraction of a day.
adDBDate    133    Indicates a date value (yyyymmdd) (DBTYPE_DBDATE).
adDBTime    134    Indicates a time value (hhmmss) (DBTYPE_DBTIME).
adDBTimeStamp    135    Indicates a date/time stamp (yyyymmddhhmmss plus a fraction in billionths) (DBTYPE_DBTIMESTAMP).
adDecimal    14    Indicates an exact numeric value with a fixed precision and scale (DBTYPE_DECIMAL).
adDouble    5    Indicates a double-precision floating-point value (DBTYPE_R8).
adEmpty    0    Specifies no value (DBTYPE_EMPTY).
adError    10    Indicates a 32-bit error code (DBTYPE_ERROR).
adFileTime    64    Indicates a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (DBTYPE_FILETIME).
adGUID    72    Indicates a globally unique identifier (GUID) (DBTYPE_GUID).
adIDispatch    9    Indicates a pointer to an IDispatch interface on a COM object (DBTYPE_IDISPATCH).
Note This data type is currently not supported by ADO. Usage may cause unpredictable results.
adInteger    3    Indicates a four-byte signed integer (DBTYPE_I4).
adIUnknown    13    Indicates a pointer to an IUnknown interface on a COM object (DBTYPE_IUNKNOWN).
Note This data type is currently not supported by ADO. Usage may cause unpredictable results.
adLongVarBinary    205    Indicates a long binary value.
adLongVarChar    201    Indicates a long string value.
adLongVarWChar    203    Indicates a long null-terminated Unicode string value.
adNumeric    131    Indicates an exact numeric value with a fixed precision and scale (DBTYPE_NUMERIC).
adPropVariant    138    Indicates an Automation PROPVARIANT (DBTYPE_PROP_VARIANT).
adSingle    4    Indicates a single-precision floating-point value (DBTYPE_R4).
adSmallInt    2    Indicates a two-byte signed integer (DBTYPE_I2).
adTinyInt    16    Indicates a one-byte signed integer (DBTYPE_I1).
adUnsignedBigInt    21    Indicates an eight-byte unsigned integer (DBTYPE_UI8).
adUnsignedInt    19    Indicates a four-byte unsigned integer (DBTYPE_UI4).
adUnsignedSmallInt    18    Indicates a two-byte unsigned integer (DBTYPE_UI2).
adUnsignedTinyInt    17    Indicates a one-byte unsigned integer (DBTYPE_UI1).
adUserDefined    132    Indicates a user-defined variable (DBTYPE_UDT).
adVarBinary    204    Indicates a binary value.
adVarChar    200    Indicates a string value.
adVariant    12    Indicates an Automation Variant (DBTYPE_VARIANT).
Note This data type is currently not supported by ADO. Usage may cause unpredictable results.
adVarNumeric    139    Indicates a numeric value.
adVarWChar    202    Indicates a null-terminated Unicode character string.
adWChar    130    Indicates a null-terminated Unicode character string (DBTYPE_WSTR).
42 mdv92
 
19.11.10
17:12
(39) Да ну!!
Так кто мне скажет, в (29) ничео лишнего нет?
43 КМ155
 
19.11.10
17:14
(42) половина лишнего
команда не нужна
44 mdv92
 
19.11.10
17:15
А краткое описание есть?
ADODB.Command - это команда
ADODB.RecordSet - а это полученные данные?
45 mdv92
 
19.11.10
17:16
(43) А как тогда написать?
К чему присобачить .Execute(); ?
46 КМ155
 
19.11.10
17:17
(45) Execute рекордсету не нужен
у него есть Open
47 shishkin1966
 
19.11.10
17:18
Connection.Execute("set implicit_transactions off");
48 КМ155
 
19.11.10
17:21
(47) для выборки данных - накуя ?
MyCon = Новый COMОбъект ("ADODB.Connection");
           MyCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=D:\999.MDB");
           MyRst = Новый COMОбъект ("ADODB.Recordset");
           MyStr = "select * from Inna where NOM_REG_VI=1 and id_predpr=1 and id_ik=1 and id_zdan=1";
           MyRst.Open (MyStr, MyCon, 2, 3);//adOpenDynamic, adLockOptimistic
           
           MyRst.Fields("Resultat").Value="Киргуду"; //
           MyRst.Update(); //Запись
           
           MyRst.Close();
           MyCon.Close();
49 shishkin1966
 
19.11.10
17:24
чтобы не мучались, кинул доку на русском про ADO
50 mdv92
 
19.11.10
17:24
(48) Нашли поле, туда записали Киргуду
А мне считать надо! Все строки с заданными значениями полей.
51 mdv92
 
19.11.10
17:25
(49) Спасибо опять!
52 КМ155
 
19.11.10
17:27
(50) [А мне считать надо]
MyRst.Fields("Resultat").Value - а это что ?
[Все строки с заданными значениями полей]
"select * from Inna where NOM_REG_VI=1 and id_predpr=1 and id_ik=1 and id_zdan=1";

мозг включай
53 mdv92
 
19.11.10
17:36
Присланное не могу пока посмотреть - на работе чужой сижу.
(52)MyRst.Open (MyStr, MyCon, 2, 3);//
Пока MyRst.EOF()=0 цикл
КодЗаказа = Строка(RecordSet.Fields("Resultat").Value);
КонецЦикла;
Так будет работать?
И потом, тут всё равно давно сомобъекта!
54 КМ155
 
19.11.10
17:39
(53) два , а не три
Connection и Recordset

команда не нужна

работать будет - так тяжело проверить ?
55 mdv92
 
19.11.10
17:42
У меня еще базы нет, к которой подключаться, она пустая.
56 МихаилМ
 
19.11.10
17:44
(42)

звездочка лишняя.
пишите конкретно, какие поля нужны.

если не требуется блокировка всей таблицы,
укажите подсказку (hint) блокировки

Вас не смущает?

RecordSet = Новый COMОбъект("ADODB.RecordSet");    
RecordSet = Cmd.Execute();

желательно в выборке (RecordSet) обращаться к полю по индексу, а не имени.


для получения ADO данных в 1с8
удобнее использовать
http://main.1c-ei.ru/Articles/gamewithfire
57 КМ155
 
19.11.10
17:44
(55) у тебя есть Access на рабочей станции
сделай базку, в ней табличку и изголяйся

пример в (48) рабочий

но помни

формат даты у каждой базы свой
58 mdv92
 
19.11.10
17:45
MyRst.Open (MyStr, MyCon, 2, 3); - а вот тут 2 и 3 - что означают?
59 mdv92
 
19.11.10
17:46
(56) Почему звездочка лишняя? Я считаю все поля, разве нет?
60 mdv92
 
19.11.10
17:48
(56) Спасибо - за "игруСОгнем". Я думаю - ме всего-то 2 запроса надо, я обойдусь, наверное.
61 КМ155
 
19.11.10
17:48
(58) //adOpenDynamic, adLockOptimistic
62 mdv92
 
19.11.10
17:50
(61) Ну, т.е. какие-то параметры по умолчанию.
63 КМ155
 
19.11.10
17:54
(62) не а
64 ado
 
19.11.10
17:57
(22) А джойны при чем?
65 ado
 
19.11.10
17:58
(59) А тебе они все нужны?
66 mdv92
 
19.11.10
17:59
Коннект у меня был стащен раньше

MyRst = Новый COMОбъект ("ADODB.Recordset");
MyStr = "Select * from TRESERV where status=0 or status=1";
MyRst.Open (MyStr, Коннект, 2, 3);
Пока MyRst.EOF()=0 цикл
СтрТаблицаЗаявок = ТаблицаЗаявок.Добавить();
СтрТаблицаЗаявок.NoteID = Строка(MyRst.Fields("NoteID").Value);
КонецЦикла;
MyRst.Close();
Коннект.Close();

TRESERV - имя таблицы в моей базе.
Так правильно?
67 mdv92
 
19.11.10
18:00
(65) Почти! из 13 нужны 10.
(63) А что тогда?
68 КМ155
 
19.11.10
18:03
(66) так правильно

почти

Пока НЕ MyRst.EOF() Цикл
69 mdv92
 
19.11.10
18:04
(68) Ага! Самое главное где-то, видимо, потеряла.
70 mdv92
 
19.11.10
18:06
Не, а почему, так тоже было правильно!
71 КМ155
 
19.11.10
18:07
(69) главное ниже
у тебя нет движения по набору, цикл будет бесконечным
где MoveNext() ?
72 mdv92
 
19.11.10
18:18
(71) Принято !
73 ILM
 
гуру
19.11.10
18:24
Нет, ну а почему бы тогда и COMSafeArray не заюзать?
Тогда выборку можно целиком передать в ТЗ )))
74 МихаилМ
 
19.11.10
18:27
то (73)
код или ссылку приведите ?
75 ILM
 
гуру
19.11.10
18:29
Счас гугльну...
76 МихаилМ
 
19.11.10
18:32
ну-ну
если бы
так можно было, то
gamewithfire
была бы не нужна.
77 ILM
 
гуру
19.11.10
18:32
(74) Нате, v8: Чтение файлов из таблцы SQL
Даже ходить далеко не пришлось)))
78 МихаилМ
 
19.11.10
18:38
то (77)
в каком посте
говорится о теме в (73)