![]() |
|
v7: 1c 7.7 и firebird 2.2 | ☑ | ||
---|---|---|---|---|
0
Zoeh
23.09.13
✎
14:59
|
Тут все ништяк:
wc=CreateObject("ADODB.Connection"); wc.ConnectionString = "DRIVER=Firebird/InterBase(r) driver;PWD=;UID=;DBNAME=d:\1C_Bases\firebird\ORDERS.FDB"; Попытка wc.Open(); Исключение Сообщить(ОписаниеОшибки()); Предупреждение("Не удалось подключиться к Базе ...") КонецПопытки; Запрос=СоздатьОбъект("ADODB.Recordset"); Запрос.ActiveConnection = wc; Запрос.Source = "select * from orders_hdrs"; Запрос.Open(); //кол = 0; Пока Запрос.Eof()=0 Цикл //кол = кол + Строка(Запрос); //обрабатываем Recordset //Сообщить(Запрос); Сообщить(Запрос.Fields("ORDER_ID").Value); Сообщить(Запрос.Fields("ORDER_DATE").Value); Запрос.MoveNext(); КонецЦикла; //Сообщить(кол); //Запрос.execute(); Запрос.Close(); А как мне добавить / обновить / удалить любую запись в таблице |
|||
1
Zoeh
23.09.13
✎
15:00
|
?
|
|||
2
ДенисЧ
23.09.13
✎
15:04
|
insert/update/delete
Учебник по скулю не предлагать? |
|||
3
пипец
23.09.13
✎
15:05
|
||||
4
MKZM
23.09.13
✎
15:07
|
ibase.ru
|
|||
5
MKZM
23.09.13
✎
15:08
|
Лучше сделай хранимки и юзай их из 1с
|
|||
6
Zoeh
23.09.13
✎
15:09
|
Запрос.Execute("insert into orders_hdrs(order_id, order_date) values(160, '23.9.2013')");
{D:\1C_BASES\FIREBIRD\ОБРАБОТКА.ERT(47)}: Поле агрегатного объекта не обнаружено (Execute) |
|||
7
Mikeware
23.09.13
✎
15:11
|
Запрос.ActiveConnection = wc; - доставляет!
|
|||
8
Zoeh
23.09.13
✎
15:17
|
Запрос.CommandText = "insert into orders_hdrs(order_id, order_date) values(160, '23.9.2013')";
{D:\1C_BASES\FIREBIRD\ОБРАБОТКА.ERT(47)}: Поле агрегатного объекта не обнаружено (CommandText) |
|||
9
Zoeh
23.09.13
✎
15:18
|
(7) непойму
|
|||
10
Mikeware
23.09.13
✎
15:20
|
wc - Water Closet
|
|||
11
Zoeh
23.09.13
✎
15:21
|
ну что туалет это я знаю, а причем здесь это?
|
|||
12
Mikeware
23.09.13
✎
15:22
|
(11) ну, то, что ты установил активное соединение с туалетом, и что-то оттуда собрался качать...
|
|||
13
Zoeh
23.09.13
✎
15:24
|
мне бы строчечку чтобы записать туда че нидь.
|
|||
14
Zoeh
23.09.13
✎
15:27
|
Ну или название провайдера для подключения:
//Открываем соединение DBConn = CreateObject("ADODB.Connection"); DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=""DBASE IV;"";"); |
|||
15
Zoeh
23.09.13
✎
15:27
|
Provider=...
|
|||
16
Zoeh
23.09.13
✎
15:33
|
ОДБЦ = СоздатьОбъект("ADODB.Connection");
СтрокаПодключения = "Provider=LCPI.IBProvider; |Data Source=localhost:d:\1C_Bases\firebird\ORDERS.FDB; |auto_commit=True; |ctype=none; |User Id=SYSDBA; |Password=masterkey"; ОДБЦ.Open(СтрокаПодключения); ОДБЦ.Open(СтрокаПодключения); {D:\1C_BASES\FIREBIRD\ОБРАБОТКА.ERT(10)}: ADODB.Connection: Не удается найти указанного поставщика. Вероятно, он установлен неправильно. |
|||
17
Zoeh
23.09.13
✎
15:38
|
Запрос.AddNew("order_id, order_date","160, '23.9.2013'");
{D:\1C_BASES\FIREBIRD\ОБРАБОТКА.ERT(53)}: ADODB.Recordset: Текущий объект Recordset не поддерживает обновление. Это связано с ограничением поставщика или с выбранным типом блокировки. |
|||
18
Zoeh
23.09.13
✎
15:42
|
как мне скорректировать подключение, чтоб можно было писать?
wc.ConnectionString = "DRIVER=Firebird/InterBase(r) driver;PWD=;UID=;DBNAME=d:\1C_Bases\firebird\ORDERS.FDB"; |
|||
19
Zoeh
23.09.13
✎
15:49
|
,,
|
|||
20
Torquader
23.09.13
✎
22:35
|
Писать в firebird нужно SQL-запросами.
AdoCommand=CreateObject("ADODB.Command"); AdoCommand.ActiveConnection=FireBird; AdoCommand.CommandText="INSERT INTO TAB_ONE(FIELD_ONE,FIELD_TWO)VALUES(?,?)"; AdoCommand.Parameters.Item(0).Value=1; AdoCommand.Parameters.Item(1).Value="Вася"; AdoCommand.Execute(); где-то так - писал по памяти. Если уж хочется через recordset, то при его открытии нужно сказать, что он для добавления - но, не всегда корректно работает (ставим тип курсора и наслаждаемся). Удачи. P.S. "жаренный петух" - ещё та птица. |
|||
21
Zoeh
24.09.13
✎
08:55
|
Чтение и запись firebird
Для всех кому интересно, закрывая ветку даю дельный совет, и единственный думаю как писать и читать файрбердную базу. должно быть установлено: Firebird-2.1.1.17910-0_Win32 Firebird_ODBC_2.0.2.153_Win32 AdoCommand=CreateObject("ADODB.Command"); //AdoCommand.ActiveConnection AdoCommand.ActiveConnection="DRIVER=Firebird/InterBase(r) driver;PWD=masterkey;UID=SYSDBA;DBNAME=d:\1C_Bases\firebird\ORDERS.FDB"; AdoCommand.CommandText="insert into orders_hdrs(order_id, order_date) values(162, '23.9.2013')";//пишем окончание //читаем начало и до конца AdoCommand.Execute(); AdoCommand.CommandText = "select * from orders_hdrs"; Запрос = AdoCommand.Execute(); Пока Запрос.Eof()=0 Цикл //кол = кол + Строка(Запрос); //обрабатываем Recordset //Сообщить(Запрос); Сообщить(Запрос.Fields("ORDER_ID").Value); Сообщить(Запрос.Fields("ORDER_DATE").Value); Запрос.MoveNext(); КонецЦикла; |
|||
22
Злой Бобр
24.09.13
✎
12:58
|
(21) Ваше незнание кривого FB вовсе неозначает что ваш вариант единственно правильный. Я помучался при синхроне 1С с ним прилично. Вывод - работайте с БД без глупых ограничений и пр. фигни. Сэкономите не только время но и нервы.
|
|||
23
Torquader
26.09.13
✎
01:00
|
(22) Firebird достаточно прямой и хороший, только кривые настройки и битая база приводят к неудачной работе.
Можно и recordset открыть на запись и с курсором - по крайней мере на VbScript работало - покопаюсь - выложу пример. А в (21) пример работы с MySql, который только прямо работать и умеет - писать значения в текст напрямую - плохой тон - можно оставить столько дыр, сколько будет запросов. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |