Найдено 103 результата

imobile
Сб 23 май 2015 08:26
Форум: Universal Data Access Components
Тема: Проблема подключения на Android
Ответы: 3
Просмотры: 5069

Re: Проблема подключения на Android

Embarcadero® RAD Studio XE8 Version 22.0.19027.8951
6.1.3 pro
imobile
Чт 21 май 2015 19:53
Форум: Universal Data Access Components
Тема: Проблема подключения на Android
Ответы: 3
Просмотры: 5069

Проблема подключения на Android

Здравствуйте.
Пытаюсь подключить Sqlite на андроид.
При добавлении провайдера выскакивают ошибки, вот одна из них

Код: Выделить всё

[ldandroid Error] C:\Users\Public\Documents\Embarcadero\Studio\16.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: C:\Program Files (x86)\Devart\UniDAC for RAD Studio XE8\Lib\Android\libliteprovider220.a(LiteStaticUni.o): in function Litestaticuni::lite_sqlite3PagerSetCodec(void*, void*, void*, void*, void*):LiteStaticUni(.text._ZN13Litestaticuni25lite_sqlite3PagerSetCodecEPvS0_S0_S0_S0_+0xe): error: undefined reference to 'lite_sqlite3PagerSetCodec'
imobile
Сб 28 мар 2015 14:53
Форум: Universal Data Access Components
Тема: Миграция с mydac
Ответы: 2
Просмотры: 3752

Re: Миграция с mydac

нашел
Lastinsertid
imobile
Сб 28 мар 2015 14:46
Форум: Universal Data Access Components
Тема: Миграция с mydac
Ответы: 2
Просмотры: 3752

Миграция с mydac

Здравствуйте.
Решил перейти на unidac. c++ builder
Автоматическая миграция работает только для delphi. Я стал вручную переводить. И ничего не нашел для InsertId в unidac У меня очень часто используется этот ид, а как он называется в unidac? или как обойти эту проблему?
imobile
Чт 18 сен 2014 08:15
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Re: Строка запроса в параметрах

Никто не отвечает? Вот я сделал, на основе лога пример, замените последний запрос в примере на это

Код: Выделить всё

sz = "INSERT INTO assortim(AS_NAME,AS_BAR,AS_SN,AS_GRUPID,AS_PRICEB,AS_REM,AS_PRICES,AS_VISIBLE) 
             VALUES(:AS_NAME,&AS_BAR,&AS_SN,&AS_GRUPID,&AS_PRICEB,&AS_REM,&AS_PRICES,&AS_VISIBLE)"
UniQuery1->SQL->Clear();
  UniQuery1->SQL->Add(sz);
  UniQuery1->ExecSQL();
  //UniQuery1->MacroByName("AS_NAME")->AsValue -- использовать не получается из-за специальных символов
поэтому использую
UniQuery1->ParamByName("AS_NAME")->AsString =
"2-й орлоносец линейного полка. Франция, 1809-12 гг."
  UniQuery1->MacroByName("GRUPID")->AsValue =
   "(SELECT ASG_ID FROM assortim WHERE ASG_NAME = 'Оловянные солдатики')";
UniQuery1->MacroByName("AS_BAR")->AsValue =  "";
UniQuery1->MacroByName("AS_SN")->AsValue =  "";
UniQuery1->MacroByName("AS_PRICEB")->AsValue =  "3434,55";
UniQuery1->MacroByName("AS_REM")->AsValue =  "<p>\r\n      врпв9мс8н8нэ' mnsfgknm94г.oiogg – офицера, \"lkfgkcm,bcmcbm.      </p>\r\n";/пример, как макрос не работает
UniQuery1->MacroByName("AS_PRICES")->AsValue =  "230";
UniQuery1->MacroByName("AS_VISIBLE")->AsValue =  "1";
  UniQuery1->ExecSQL();
Мне бы хоть какой либо пример, где могли передаваться переменные, идеально бы подошли параметры, но если запрос и числовые передать нельзя, то пытаюсь разделить на параметры и макросы, но у меня они вместе не работают, может в настройках поменять?
Так же можно сделать на основе лога с изображением.Ноо с изображением одно но, я его загружаю в созданный параметер, сложновато его вставить после запроса.
imobile
Вс 14 сен 2014 10:54
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Re: Строка запроса в параметрах

Я сделал небольшой лог, вот реальные данные, в этом примере я передаю параметры после запроса

Код: Выделить всё

INSERT INTO assortim(AS_NAME,AS_BAR,AS_SN,AS_GRUPID,AS_PRICEB,AS_REM,AS_PRICES,AS_VISIBLE) 
             VALUES(:AS_NAME,&AS_BAR,&AS_SN,&AS_GRUPID,&AS_PRICEB,&AS_REM,&AS_PRICES,&AS_VISIBLE)
  :2-й орлоносец линейного полка. Франция, 1809-12 гг.
  &
  &
  &(SELECT ASG_ID FROM asgrp WHERE ASG_NAME ='Оловянные солдатики')
  &-1
  &<p>\r\n      врпв9мс8н8нэ' "mnsfgknm94г.oiogg – офицера, lkfgkcm,bcmcbm.      </p>\r\n
  &230
  &1
где пусто, там null. Этот пример не работает. В принципе, все строки, кроме запроса, я мог бы передавать через параметры.
Вот второй пример, здесь в параметр типа blob загружаю в созданный параметр

Код: Выделить всё

 INSERT INTO image(IM_INFO,IM_DESC,IM_ASID,IM_IMAGE1, IM_EXT1, IM_GUID1)
    VALUES(&IM_INFO,&IM_DESC,&IM_ASID,:image1, '.gif', '{2109DD4D-8228-44AD-AB9B-4438DC6E9589}')
    &<p>льваь2"': крас2-го fgg   
    3-го; с gjnhfю «НАПОЛЕОН» fhghgfh (летние или парадные -  из белого полотна). 
    gfffhfhе.</p>   
    &<p>\r\n        gncnn 188 г.
    vcnjfgnнов-сержв,
    gggамотой. nvnnbnbти.      </p>\r\n
    &0
Этот пример тоже не работает
imobile
Чт 11 сен 2014 12:39
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Re: Строка запроса в параметрах

Вот сделал файл на основе unidac, на mydac не могу сейчас сделать, стоит на другом компьютере. На основе этого примера можно попытаться добавить создание параметров и загрузку изображений раньше (позже) строки запроса.

http://файлообменник.рф/ayosbgk32uls.html
imobile
Вт 09 сен 2014 16:45
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Re: Строка запроса в параметрах

Это наверное при копировании пропало. Не работает. Кроме того, вы указали на одинарные ковычки, а на них макрос прерывает работу, и выщдает ошибку ...near, а дальше текст после ковычек
imobile
Вс 07 сен 2014 09:29
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Re: Строка запроса в параметрах

Письмо не удалось отправить,
Delay reason: SMTP error from remote mail server after RCPT TO:<************>:
host mail.devart.com [50.22.125.88]: 451 Greylisted, please try again in 240 seconds

Код: Выделить всё

CREATE TABLE u_db_dev.assortim (
  AS_BAR varchar(30) DEFAULT '',
  AS_ARTICLE varchar(30) DEFAULT '',
  AS_ID int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  AS_NAME varchar(255) DEFAULT NULL,
  AS_REM varchar(250) DEFAULT NULL,
  AS_PICTURE varchar(250) DEFAULT NULL,
  AS_WEGHT double(15, 3) DEFAULT NULL,
  AS_GRUPID int(11) UNSIGNED DEFAULT NULL,
  AS_SPEC varchar(10) DEFAULT NULL,
  AS_VALMIN double(15, 3) DEFAULT NULL,
  AS_VALMAX double(15, 3) DEFAULT NULL,
  AS_VALUE double(15, 3) DEFAULT NULL,
  AS_PRICEB decimal(15, 5) DEFAULT 0.00000,
  AS_PRICES decimal(15, 5) DEFAULT 0.00000,
  AS_PRICE2 decimal(15, 5) DEFAULT 0.00000,
  AS_PRICE3 decimal(15, 5) DEFAULT 0.00000,
  AS_NDS float(9, 3) DEFAULT NULL,
  AS_NSP float(9, 3) DEFAULT NULL,
  AS_SN varchar(50) DEFAULT '',
  AS_UNIT1 varchar(20) DEFAULT NULL,
  AS_UNIT2 varchar(20) DEFAULT NULL,
  AS_COLOR int(11) UNSIGNED DEFAULT NULL,
  AS_STATE varchar(40) DEFAULT NULL,
  AS_VISIBLE int(11) UNSIGNED DEFAULT NULL,
  AS_MODEL varchar(40) DEFAULT '',
  AS_FLOAT tinyint(1) DEFAULT 0,
  AS_CHPRICE tinyint(1) DEFAULT 0,
  AS_ISNEW tinyint(1) DEFAULT 0,
  PRIMARY KEY (AS_ID),
  UNIQUE INDEX UK_assortim (AS_BAR, AS_MODEL, AS_NAME, AS_PRICES, AS_SN),
  CONSTRAINT FK_assortim_asgrp_ASG_ID FOREIGN KEY (AS_GRUPID)
  REFERENCES u_db_dev.asgrp (ASG_ID) ON DELETE SET NULL ON UPDATE CASCADE
)
ENGINE = INNODB
AUTO_INCREMENT = 628
AVG_ROW_LENGTH = 81
CHARACTER SET utf8
COLLATE utf8_general_ci;

CREATE TABLE u_db_dev.asgrp (
  ASG_ID int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  ASG_NAME varchar(50) DEFAULT NULL,
  ASG_LEFT int(11) DEFAULT NULL,
  ASG_PARENT int(11) DEFAULT NULL,
  ASG_RIGHT int(11) DEFAULT NULL,
  ASG_REM varchar(255) DEFAULT NULL,
  ASG_INDEX int(11) DEFAULT NULL,
  ASG_ADD double DEFAULT NULL,
  PRIMARY KEY (ASG_ID),
  UNIQUE INDEX ASG_NAME (ASG_NAME)
)
ENGINE = INNODB
AUTO_INCREMENT = 5
AVG_ROW_LENGTH = 5461
CHARACTER SET utf8
COLLATE utf8_general_ci;
CREATE TABLE u_db_dev.image (
  IM_ID int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  IM_NAME varchar(50) DEFAULT NULL,
  IM_ASID int(11) UNSIGNED DEFAULT NULL,
  IM_STATUS int(11) DEFAULT NULL,
  IM_INFO text DEFAULT NULL ,
  IM_DESC text DEFAULT NULL,
  IM_KEYWORDS varchar(255) DEFAULT NULL,
  IM_URL varchar(255) DEFAULT NULL COMMENT ,
  IM_IMAGE1 mediumblob DEFAULT NULL,
  IM_IMAGE2 mediumblob DEFAULT NULL,
  IM_IMAGE3 mediumblob DEFAULT NULL,
  IM_IMAGE4 mediumblob DEFAULT NULL,
  IM_IMAGE5 mediumblob DEFAULT NULL,
  IM_IMAGE6 mediumblob DEFAULT NULL,
  IM_IMAGE7 mediumblob DEFAULT NULL,
  IM_IMAGE8 mediumblob DEFAULT NULL,
  IM_IMAGE9 mediumblob DEFAULT NULL,
  IM_IMAGE10 mediumblob DEFAULT NULL,
  IM_IMAGE11 mediumblob DEFAULT NULL,
  IM_IMAGE12 mediumblob DEFAULT NULL,
  IM_IMAGE13 mediumblob DEFAULT NULL,
  IM_IMAGE14 mediumblob DEFAULT NULL,
  IM_IMAGE15 mediumblob DEFAULT NULL,
  IM_GUID1 varchar(50) DEFAULT NULL,
  IM_GUID2 varchar(50) DEFAULT NULL,
  IM_GUID3 varchar(50) DEFAULT NULL,
  IM_GUID4 varchar(50) DEFAULT NULL,
  IM_GUID5 varchar(50) DEFAULT NULL,
  IM_GUID6 varchar(50) DEFAULT NULL,
  IM_GUID7 varchar(50) DEFAULT NULL,
  IM_GUID8 varchar(50) DEFAULT NULL,
  IM_GUID9 varchar(50) DEFAULT NULL,
  IM_GUID10 varchar(50) DEFAULT NULL,
  IM_GUID11 varchar(50) DEFAULT NULL,
  IM_GUID12 varchar(50) DEFAULT NULL,
  IM_GUID13 varchar(50) DEFAULT NULL,
  IM_GUID14 varchar(50) DEFAULT NULL,
  IM_GUID15 varchar(50) DEFAULT NULL,
  IM_EXT1 varchar(150) DEFAULT NULL,
  IM_EXT2 varchar(15) DEFAULT NULL,
  IM_EXT3 varchar(15) DEFAULT NULL,
  IM_EXT4 varchar(15) DEFAULT NULL,
  IM_EXT5 varchar(15) DEFAULT NULL,
  IM_EXT6 varchar(15) DEFAULT NULL,
  IM_EXT7 varchar(15) DEFAULT NULL,
  IM_EXT8 varchar(15) DEFAULT NULL,
  IM_EXT9 varchar(15) DEFAULT NULL,
  IM_EXT10 varchar(15) DEFAULT NULL,
  IM_EXT11 varchar(15) DEFAULT NULL,
  IM_EXT12 varchar(15) DEFAULT NULL,
  IM_EXT13 varchar(15) DEFAULT NULL,
  IM_EXT14 varchar(15) DEFAULT NULL,
  IM_EXT15 varchar(15) DEFAULT NULL,
  PRIMARY KEY (IM_ID),
  UNIQUE INDEX IM_GUID (IM_GUID1),
  CONSTRAINT FK_image_assortim_AS_ID FOREIGN KEY (IM_ASID)
  REFERENCES u_db_dev.assortim (AS_ID) ON DELETE CASCADE ON UPDATE CASCADE
)
ENGINE = INNODB
AUTO_INCREMENT = 2088
AVG_ROW_LENGTH = 5279
CHARACTER SET utf8
COLLATE utf8_general_ci;
  UnicodeString sz = "INSERT INTO assortim (AS_NAME,AS_GRUPID) VALUES (&NAME,&GRP)";
  MyQuery1->SQL->Clear();
  MyQuery1->SQL->Add(sz);
  MyQuery1->MacroByName("NAME")->AsString = "WWWWW";
  MyQuery1->MacroByName("GRP")->AsString =
   "(SELECT ASG_ID FROM assortim WHERE ASG_NAME = `Оловянные солдатики`";
   MyQuery1->ExecSQL();

Код: Выделить всё

First chance exception at $75A0B727. Exception class EMySqlException with message
'
#HY000Incorrect integer value: '(SELECT ASG_ID FROM assortim WHERE ASG_NAME = `Оловянные солдатики`' for column 'AS_GRUPID' at row 1'.
Process Project1.exe (10212)
Не могу установить #pragma link "MyDacVcl" пишет не найден
какой-то obj файл
Еще более странное поведение, когда комбинирую macros и параметры, созданные заранее, типа VALUES(:GG,&GHHJK,:GHJJJ,:YGYFVHV,:UGYGHG)Я попытался обойти ошибку, но после макроса, параметры пытаются загрузить не в те ячейки, я уже пытаюсь в несколько заходов сделать. Может ошибка в коде, но я не обнаружил

Код: Выделить всё

int __fastcall TForm2::insertDB (Vector_list &m_vector,
									UnicodeString table, int Action)
{

if (Action == insertToTable)
{
  int countD=1;
  TmpQuery->SQL->Clear();
  UnicodeString beginsz = "INSERT INTO " + table + "(";
  UnicodeString endsz = "";
  UnicodeString sz1 = "";
  UnicodeString sz2 = ") VALUES(";

  for (int i=0; i < m_vector.size() ; i++)
  {
	if (m_vector[i].Action == insertStringToTable)// макрос не воспринимает одинарные ковычки "'" поэтому был вынужден вставить
	{
	   sz1+= m_vector[i].Col1;
	   sz2+=":" + m_vector[i].Col1;
	   TmpQuery->Params->CreateParam(ftString,  m_vector[i].Col1, ptInput);
	   TmpQuery->ParamByName( m_vector[i].Col1)->AsString = m_vector[i].Value1;

	}
	if (m_vector[i].Action == insertToTable)
	{
	  sz1+= m_vector[i].Col1;
	  if (m_vector[i].Value1.Pos("SELECT") != 0  )// вынужден вставлять запрос, т.к. не работает через параметры или макрос
	  {
		sz2+=  m_vector[i].Col1;
	  }
	  else
	  {
		sz2+="&" + m_vector[i].Col1;
	  }

	}
	if (m_vector[i].Action == downloadImage )
	{
	  if(ExtractFileName(m_vector[i].Value1) == "")
	  {

		 sz1 = sz1.Delete(sz1.Length(), 1);
		 sz2 = sz2.Delete(sz2.Length(), 1);

	  }
	  else
	  {
		GUID gid;
		UnicodeString agu;
		CreateGUID(gid);
		agu = Sysutils::GUIDToString(gid);
		UnicodeString cD = IntToStr(countD);
		UnicodeString im = "image" + cD;
		TmpQuery->Params->CreateParam(ftBlob, im, ptInput);
		TmpQuery->ParamByName(im)->LoadFromFile(m_vector[i].Value1, ftBlob);//<--вместо изображения строка из другого параметра
	//  UnicodeString ex = "ext"   + cD; <---эти строки попадают на другие столбцы 
	 // TmpQuery->Params->CreateParam(ftString, ex, ptInput);
	//  UnicodeString ff = ExtractFileExt(m_vector[i].Value1);
   //	  TmpQuery->ParamByName(ex)->AsString = ExtractFileExt(m_vector[i].Value1);
//	  UnicodeString gu = "guid"  + cD;
//	  TmpQuery->Params->CreateParam(ftString, gu, ptInput);
//	  TmpQuery->ParamByName(gu)->AsString = agu;
		sz1+= "IM_IMAGE" + cD + ", IM_EXT" + cD + ", IM_GUID" +cD;
		countD++;
		sz2+= ":" + im + ", '" + ExtractFileExt(m_vector[i].Value1) + "', '" + agu + "'";<-- но если вставлять как стринг, но нормально 
	  }
	}
	if (m_vector[i].Action == endStr)
	{
	   endsz = m_vector[i].Value1;
	}
	 if (i+1 < m_vector.size())
	 {
		 sz1+= ",";
		 sz2+= ",";
	 }
	 else
	 {
	   sz2+= ")";
	 }
  }

 TmpQuery->SQL->Add(beginsz);
 TmpQuery->SQL->Add(sz1);
 TmpQuery->SQL->Add(sz2);
 TmpQuery->SQL->Add(endsz);

  for (int i=0; i < m_vector.size() ; i++)
  {
	if (m_vector[i].Action == insertToTable && m_vector[i].Value1.Pos("SELECT") == 0 )
	{
	  TmpQuery->MacroByName(m_vector[i].Col1)->AsString = m_vector[i].Value1;
	}
  }


 TmpQuery->ExecSQL();
 m_vector.clear();

 return TmpQuery->InsertId;
}
}
imobile
Пт 05 сен 2014 13:26
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Re: Строка запроса в параметрах

Через макрос тоже не получается передать запрос в integer поле.
imobile
Ср 03 сен 2014 18:25
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Re: Строка запроса в параметрах

Все равно не работает, та же ошибка, неправильное значение для поля integer. То же самое, что и parameter, только где слово группа, нельзя использовать "'"

Код: Выделить всё

TmpQuery->MacroByName("aa")->AsString = "(SELECT ID_GROUP FROM group WHERE GROUP_NAME = `ГРУППА`);
TmpQuery->Params->CreateParam(ftBlob, "bb", ptInput);
TmpQuery->ParamByName("bb")->LoadFromFile(m_vector[i].Value1, ftBlob);
TmpQuery->Add("INSERT INTO table1(AA,BB) VALUES (&aa,:bb)");
imobile
Вт 02 сен 2014 19:19
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Re: Строка запроса в параметрах

А как сделать, чтоб так работало?

Код: Выделить всё

TmpQuery->MacroByName("aa")->AsString = m_vector[i].Value2;
TmpQuery->Params->CreateParam(ftBlob, "bb", ptInput);
TmpQuery->ParamByName("bb")->LoadFromFile(m_vector[i].Value1, ftBlob);
TmpQuery->Add("INSERT INTO table1(AA,BB) VALUES (&aa,:bb)");
imobile
Вс 31 авг 2014 17:19
Форум: MySQL Data Access Components
Тема: Строка запроса в параметрах
Ответы: 16
Просмотры: 19812

Строка запроса в параметрах

Здравствуйте.
Возникла задача, надо параметры сформировать раньше запроса. Причем, поля имеют разный формат, для двоичных данных загружаемых с диска - ftBlob, для текста я создаю стринг(и для текста типа блоб) и для всего остального, тоже стринг(так как, все параметры передаются через два вектора. Параметры могут быть как значение, так и запрос, например для поля int я хочу передать (select... where...)
Делаю примерно так

Код: Выделить всё

TmpQuery->Params->CreateParam(ftString, m_vector[i].Col1, ptInput);
TmpQuery->ParamByName(m_vector[i].Col1)->AsString = m_vector[i].Value2;
TmpQuery->Params->CreateParam(ftBlob, "bb", ptInput);
TmpQuery->ParamByName("bb")->LoadFromFile(m_vector[i].Value1, ftBlob);
TmpQuery->Add("INSERT INTO table1(AA,BB) VALUES (:aa,:bb)
Если я уберу checkParam, то результат - пустые строки, если ставлю - неправильное значение для Integer "(select... where
Можно ли с помощью myDac сделать подобное?
imobile
Вт 10 июн 2014 07:09
Форум: Universal Data Access Components
Тема: Странное поведение SQLite
Ответы: 9
Просмотры: 8868

Re: Странное поведение SQLite

Здравствуйте.
Проблема была установщике, а не в unidac
Спасибо.
imobile
Ср 04 июн 2014 12:36
Форум: Universal Data Access Components
Тема: Странное поведение SQLite
Ответы: 9
Просмотры: 8868

Re: Странное поведение SQLite

Сменил тип данных varchar на text
Шифрую только VALUE

Код: Выделить всё

UnicodeString __fastcall TForm1::GetValue(UnicodeString key)
{
	   UnicodeString sz = "SELECT US_ID,US_NAME,US_VALUE FROM user WHERE US_NAME = :name";
	   UniQuery5->SQL->Clear();
	   UniQuery5->SQL->Add(sz);
	   UniQuery5->ParamByName("name")->AsString = key;
	   UniQuery5->Open();
	   UniQuery5->First();
	   UnicodeString v =  UniQuery5->FieldByName("US_VALUE")->AsString;
	   return v;
}
int __fastcall TForm1::SetValue(UnicodeString key, UnicodeString Value)
{
	  GetValue(key);
	  if (!UniQuery5->IsEmpty())
	  {
		UniQuery5->Edit();
		UniQuery5->FieldByName("US_VALUE")->AsString =  Value;
		UniQuery5->Post();
	  }else
	  {
		 UniQuery5->Insert();
		 UniQuery5->FieldByName("US_NAME")->AsString =  key;
		 UniQuery5->FieldByName("US_VALUE")->AsString =  Value;
		 UniQuery5->Post();
      }
	   
	   return 0;
}
При попытке прочитать длинное значение(путь к программе) выдается ошибка
'Invalid encrypted data size'