1 2 3 4 5 6 7 8 9 |
TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, // 0..4 ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, // 5..11 ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, // 12..18 ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, // 19..24 ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, // 25..31 ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, // 32..37 ftFixedWideChar, ftWideMemo, ftOraTimeStamp, ftOraInterval, // 38..41 ftLongWord, ftShortint, ftByte, ftExtended, ftConnection, ftParams, ftStream, //42..48 ftTimeStampOffset, ftObject, ftSingle); //49..51 |
Автор | Сообщение | ||
---|---|---|---|
Заголовок сообщения: Работа с SQL Добавлено: Пт май 31, 2013 08:46 |
|||
|
Сделал Recordset с текстом SQL такого содержания: Код: SELECT Procedures.Date_procedure, Procedures.Bath_mineral, Procedures.Bath_herb, Procedures.Shower_intestinal, Procedures.Hydromassage, Procedures.Aerovanny, Procedures.Shower_power, Procedures.Shower_circular, Procedures.Shower_ascending myDate задается как параметр. При попытке соединения к БД в самом супервайзере появляется ошибка: Код: Source: Description: Жмешь по кнопке Close появляется след ошибка: Код: Source: Description: Снова жмешь по кнопке Close появляется след ошибка: Код: Source: Description: И в итоге в супервайзере всё таки подключается к БД. Что не так не пойму. |
||
В начало |
|
||
Миханик |
Заголовок сообщения: Re: Работа с SQL Добавлено: Пт май 31, 2013 10:32 |
|
или каким еще образом можно вытащить из БД одну запись по с заданным значением даты, одного из полей? |
В начало |
|
Олег |
Заголовок сообщения: Re: Работа с SQL Добавлено: Пт май 31, 2013 10:54 |
|
Я не пробовал цепляться к базе с помощью SQL запроса Записей на дату может быть несколько, самое простое отфильтровать нужное командой DBExecute( база, «Filter», текст фильтра ) |
В начало |
|
AndyRay |
Заголовок сообщения: Re: Работа с SQL Добавлено: Пт май 31, 2013 12:31 |
|
Миханик писал(а): Сделал Recordset с текстом SQL такого содержания: Код: SELECT Procedures.Date_procedure, Procedures.Bath_mineral, Procedures.Bath_herb, Procedures.Shower_intestinal, Procedures.Hydromassage, Procedures.Aerovanny, Procedures.Shower_power, Procedures.Shower_circular, Procedures.Shower_ascending myDate задается как параметр. При попытке соединения к БД в самом супервайзере появляется ошибка: Код: Source: Description: Попробуйте упростить текст рекордсета : Код: SELECT * FROM Procedures а запрос параметров из базы осуществляйте из скрипта при помощи конструкции на вроде: Код: DBClose( «Connection1.Procedures» ) |
В начало |
|
Миханик |
Заголовок сообщения: Re: Работа с SQL Добавлено: Пн июн 03, 2013 04:44 |
|
Олег AndyRay И еще впорос, который меня уже давно мучает и я всё никак не разберусь: Если я создаю Connection и добавляю RecordSet, то потом при открытии командой DBOpen(«Connection1.RecordSet1») появляется ошибка и БД не открывается.. Код: Faled to open Recordset: Connection1.RecordSet1 А если полностью открывать Connection1 командой DBOpen(«Connection1»), а в RecordSet1 поставить галочку «открывать при подключении», то все нормально открывается. |
В начало |
|
AndyRay |
Заголовок сообщения: Re: Работа с SQL Добавлено: Пн июн 03, 2013 07:28 |
|
Миханик писал(а): Олег AndyRay И еще впорос, который меня уже давно мучает и я всё никак не разберусь: Если я создаю Connection и добавляю RecordSet, то потом при открытии командой DBOpen(«Connection1.RecordSet1») появляется ошибка и БД не открывается.. Код: Faled to open Recordset: Connection1.RecordSet1 А если полностью открывать Connection1 командой DBOpen(«Connection1»), а в RecordSet1 поставить галочку «открывать при подключении», то все нормально открывается. На вскидку сложно сказать…Можно увидеть параметры, с которыми создан рекордсет? |
В начало |
|
Миханик |
Заголовок сообщения: Re: Работа с SQL Добавлено: Пн июн 03, 2013 08:48 |
|
вот действующий RecordSet и не важно что выбирать в качестве источника Table Name или SQL Text:
У вас нет необходимых прав для просмотра вложений в этом сообщении. |
В начало |
|
AndyRay |
Заголовок сообщения: Re: Работа с SQL Добавлено: Пн июн 03, 2013 10:14 |
|
Из практики ошибка Код: Execution of function: DBOpen Failed ! может возникать при недоступности источника данных(изменилось название\структура таблицы, с которой связан рекордсет к примеру). Так же перед изменением источника данных рекордсета командой Код: call DBExecute( «Connection1.Procedures», «Source», SQL ) рекордсет необходимо закрыть. |
В начало |
|
Даниил |
Заголовок сообщения: Re: Работа с SQL Добавлено: Вт ноя 27, 2018 11:44 |
|
Сделал Recordset c SQL текстом такого содержания: SELECT * FROM tect where KOD=324542 При открытие Recordset, все отлично он связывается с базой данных и выводит нужную строчку, а если меняю содержимое Recordset: SELECT * FROM tect А скриптом пытаюсь задать запрос к базе данных: DBClose( «Connection2.Recordset1» ) Выдает ошибки: Может ли на это влиять что версия CX-Surervisor Trial? |
В начало |
|
olegzh |
Заголовок сообщения: Re: Работа с SQL Добавлено: Чт ноя 29, 2018 00:14 |
|
а может сначала надо открыть (open) соединение, а потом вызвать (execute) запрос? |
В начало |
|
Даниил |
Заголовок сообщения: Re: Работа с SQL Добавлено: Чт ноя 29, 2018 08:07 |
|
Все спасибо разобрался, причина была в том, что переменная SQL = «SELECT * FROM tect where KOD=324542 « была не текстового формата, я видимо не заметил этого когда выбирал ее. |
В начало |
|
Эксперт
Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006
Репутация: 1
Всего: 50
Как запросом удалить все записи таблицы? (C++ Builder 6.0, ADO, MDB)
Делаю так:
Код |
|
Получаю:
Код |
|
Или оператор TRUNCATE только для T_SQL???
0
a_ivanov
08.09.08
✎
18:25
Народ кто записывал данные в DBF через ADO посредством многострочного запроса? Пишет ошибку «Пропущен символ (;) в конце инструкции SQL.»Ставлю точку с запятой пишет другую ошибку: «Ошибочная инструкция SQL; предполагалось ‘DELETE’, ‘INSERT’, ‘PROCEDURE’, ‘SELECT’ или ‘UPDATE'»
Текст запроса такой:
Insert into cashTax Values(‘2’, ‘1’, ‘1’, ‘1423’, ‘1’, ‘1’, ‘1’, ’18’, ’18 %’, ‘1,53’, ‘1,53’)
Insert into cashSail Values(‘2’, ‘1’, ‘1’, ‘1423’, ‘1’, ‘05.09.2008’, ‘1608’, ’14’, ‘NOSIZE’, ’10’, ‘1’, ’10’, ’10’, ’10’, ‘0’, ‘1’, ‘1’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’)
По одной строке все нормально записывает
1
Rebelx
08.09.08
✎
19:17
попробуй:
BEGIN
Запрос1;
Запрос2;
END
(так оракл понимает)
2
smaharbA
09.09.08
✎
06:34
пеши в одну строку и с ;
(и че у тебя в таблице, все чары ? )
3
a_ivanov
09.09.08
✎
10:33
Не так тоже не работает. На sql.ru говорят вообще так не получиться :-(((
4
smaharbA
09.09.08
✎
12:33
(3) получится
Insert into cashTax Values(‘2’, ‘1’, ‘1’, ‘1423’, ‘1’, ‘1’, ‘1’, ’18’, ’18 %’, ‘1,53’, ‘1,53’);Insert into cashSail Values(‘2’, ‘1’, ‘1’, ‘1423’, ‘1’, ‘05.09.2008’, ‘1608’, ’14’, ‘NOSIZE’, ’10’, ‘1’, ’10’, ’10’, ’10’, ‘0’, ‘1’, ‘1’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’);
Вот к примеру, работает и не жужит
cmd="SET DATEFORMAT YMD;INSERT INTO [" & BaseSQL & "].[dbo].[" & TableSQL & "] ([DATELOG],[SERVICE],[USER],[METH],[SOUR],[PORTS],[DEST],[PORTD],[BYTEIN],[BYTEOUT],[BYTEALL],[CODE]) VALUES (CAST('" & datelog & "' AS DATETIME),'" & service & "','" & user & "','" & meth & "','" & sour & "'," & ports & ",'" & dest & "'," & portd & "," & bytein & "," & byteout & "," & byteall & ",'" & code & "');"
call rs.Open(cmd,con,3,1,1)
string ConStr;
string StrInsert = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» + Application.StartupPath + «\\» + «;Extended Properties=dBASE IV;User ID=Admin;Password=»;
string path = «C:\\base\\»;
string query = » select distinct law.pers_num_k, law.family_k, law.name_k, law.father_k, law.d_rogd_k, law.d_sm, reg.pers_num, reg.family, reg.name, reg.father, lcn.sv from lawdat_p as law, register as reg, lcn as lcn where (law.family_k is not null) and (law.name_k is not null) and (reg.num = law.num) and (reg.num = lcn.num) order by law.family_k, law.name_k, law.father_k, law.d_rogd_k, law.d_sm»;
string in_str = » insert into regdate (pers_num, family, name, father, d_rogd, d_sm, rayon, pers_num_n, family_n, father_n, name_n, sv) values (@pers_num, @family, @name, @father, @d_rogd, @d_sm, @rayon, @pers_num_n, @family_n, @father_n, @name_n, @sv)»;
DirectoryInfo dir = new DirectoryInfo(path);
DirectoryInfo[] ds = dir.GetDirectories();
foreach (DirectoryInfo d in ds)
{
try
{
ConStr = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» + path + d.Name + «\\» + «;Extended Properties=dBASE IV;User ID=Admin;Password=»;
OleDbConnection conn = new OleDbConnection(ConStr);
OleDbCommand cmd = new OleDbCommand(query, conn);
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
OleDbConnection conn1 = new OleDbConnection(StrInsert);
OleDbCommand cmd1 = new OleDbCommand(in_str, conn1);
cmd1.Parameters.Add(«@pers_num», OleDbType.Char);
cmd1.Parameters[«@pers_num»].Value = reader[0];
cmd1.Parameters.Add(«@family», OleDbType.Char);
cmd1.Parameters[«@family»].Value = reader[1];
cmd1.Parameters.Add(«@name», OleDbType.Char);
cmd1.Parameters[«@name»].Value = reader[2];
cmd1.Parameters.Add(«@father», OleDbType.Char);
cmd1.Parameters[«@father»].Value = reader[3];
cmd1.Parameters.Add(«@d_rogd», OleDbType.Date);
cmd1.Parameters[«@d_rogd»].Value = reader[4];
cmd1.Parameters.Add(«@d_sm», OleDbType.Date);
cmd1.Parameters[«@d_sm»].Value = reader[5];
cmd1.Parameters.Add(«@rayon», OleDbType.Char);
cmd1.Parameters[«@rayon»].Value = d.Name;
cmd1.Parameters.Add(«@pers_num_n», OleDbType.Char);
cmd1.Parameters[«@pers_num_n»].Value = reader[6];
cmd1.Parameters.Add(«@family_n», OleDbType.Char);
cmd1.Parameters[«@family_n»].Value = reader[7];
cmd1.Parameters.Add(«@name_n», OleDbType.Char);
cmd1.Parameters[«@name_n»].Value = reader[8];
cmd1.Parameters.Add(«@father_n», OleDbType.Char);
cmd1.Parameters[«@father_n»].Value = reader[9];
cmd1.Parameters.Add(«@sv», OleDbType.Char);
cmd1.Parameters[«@sv»].Value = reader[10];
conn1.Open();
cmd1.ExecuteNonQuery();
conn1.Close();
}
reader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}