AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.09.2004, 16:05   #1  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
? Работа со строками на Х++
Всем привет!

Люди подскажите, где взять описание функций работы со строками на Х++

К примеру есть у меня строка, в которой указано название и город после буквы г. (Шарашкина контора г.Казань). Мне надо выдернуть отдельно название (до буквы г.) и город (соответсвенно после буквы г.)
Старый 02.09.2004, 16:19   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
АОТ->System Documentation/Functions/str*
Старый 02.09.2004, 16:21   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
AOT\System Documentation\Functions\str*

Пользутесь же поиском!

С Уважением,
Георгий
Старый 02.09.2004, 17:22   #4  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
Спасибо!
Нашел функции, почитал, слепил следующую конструкцию

bankgroup.Name = StrDel(resultset.getString(1), strScan(resultset.getString(1), 'г.', 1, StrLen(resultset.getString(1))), (StrLen(resultset.getString(1)) -
strScan(resultset.getString(1), 'г.', 1, StrLen(resultset.getString(1))))); //название до буквы г.

Это я так вставляю, название в Банки (отсекаю все, начиная с буквы г. а resultset - это курсор), но при попытке записать подобное в базу аксапта начинает ругаться - Невозможно выполнить требуемую операцию с БД. ..хотя компиляция проходит удачно. Что может быть?
Старый 02.09.2004, 17:33   #5  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Если ругается - приводите Ваш код полностью. Вариантов может быть много - Вы не выбрали запись forupdate, не заполнили поля обязателные для заполнения и т.д.
Старый 02.09.2004, 17:39   #6  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
Вот код!
Я токо начинаю - поэтому могу пропускать вполне очевидные вещи.. вообщем смотрите:

static void Job4(Args _args)
{
BankGroup bankGroup;
Str 600 sSQL; // Строка SQL
LoginProperty lp; // Объект, который передает в строку подключения информацию о логине
OdbcConnection connection; // Сам объект connection
Statement statement; // Объект, который позволяет выполнить SQL- команду
ResultSet resultSet; // Объект, в котором содержатся полученные строки (курсор, recordset)
;
lp = new LoginProperty();
lp.setDSN("My ODBC");
connection = new OdbcConnection(lp);
statement = connection.createStatement();
try
{
sSQL = "SELECT bank, bnkkod, corrschet, code FROM partner";
resultSet = statement.executeQuery(sSQL);
while (resultSet.next())
{
bankgroup.Name = StrDel(resultset.getString(1), strScan(resultset.getString(1), 'г.', 1, StrLen(resultset.getString(1))), (StrLen(resultset.getString(1)) -
strScan(resultset.getString(1), 'г.', 1, StrLen(resultset.getString(1))))); //название до буквы г.
// bankGroup.DEL_BankCity_RU = resultset.getString(1); //город после буквы г.
bankgroup.BankBIC_RU = resultset.getString(2); //бик
bankgroup.BankCorrAccount_RU = resultset.getString(3); //корсчет
bankGroup.BankType_RU = BankType_RU::Main; //тип банка (основной)
bankGroup.BankGroupId = resultset.getString(4); //код


bankgroup.insert();
// print(resultset.getString(1));
}
}
catch(exception::Error)
{
info('bad');
}

}
Старый 02.09.2004, 17:49   #7  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
На первый взгляд все нормально. Попробуйте посмотреть в отладчике какие значения реально вставляются в БД и попробуйте вставить такую же запись ручками через браузер таблиц. Получится или нет ?
Старый 02.09.2004, 17:56   #8  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
Она ругается, потому что из ResultSet нельзя два раза доставать значение из поля с одним и тем же индексом. Из ResultSet можно доставать значения только последовательно, то есть, если вы написали

resultSet.GetString(3)

то далее можно доставать значения из полей с большими индексами. Повторный вызов resultSet.GetString(3) приведет к ошибке.

Вообще, вместо ODBCConnection лучше использовать CCADOConnection - там можно доставать значения в любой послежовательности и обращаться к полям по именам.
Старый 02.09.2004, 18:04   #9  
Smith is offline
Smith
Участник
 
76 / 10 (1) +
Регистрация: 02.09.2004
Попробую завтра..

спасибо за ответы! Кстати принт тоже ту строку не понимает - видать что-то в ней не так, а если писать так

bankgroup.Name = resultset.getString(1);

то все нормально! Но мне надо это значение обрезать.. ладно завтра посижу..
Старый 02.09.2004, 18:08   #10  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Действительно. Я не доглядел.

Цитата:
Но мне надо это значение обрезать.. ладно завтра посижу..

Сделайте так:

PHP код:
     а =  resultSet.GetString(1);
     
=  resultSet.GetString(2);
     
=  resultSet.GetString(3); 
А дальше работайте с этими переменными.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Сергей Герасимов: На что похожа работа в технической поддержке Blog bot DAX Blogs 0 04.02.2008 10:40
Доступ к меню "Работа с документами" Kuat DAX: Администрирование 4 16.11.2007 17:07
Совместная работа заказчика и исполнителя в разных или одном слое? Кузин Владимир В. DAX: Программирование 6 08.08.2006 10:02
Как открыть форму с строками журнала Leha DAX: Программирование 2 27.08.2004 10:18
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:18.