Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 11:34 28.06.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | 3 | >> (покажи всички)
Тема Проблем с ADODataSet.Locateнови  
АвторDaniel (Нерегистриран)
Публикувано29.03.06 20:32



Здравейте, имам следния проблем с метод Locate ADODataSet:

При извикване на следната последователност се получава
гърмеж на Locate-a:

FieldName := '04';
Value := 'Client's project';
if not Table.Locate(FieldName,Value,[loCaseInsensitive]) then
Exit;

Средата е Delphi 6 Pro а базата данни е Oracle 9.2.
Подозрението ми е, че е заради апострофа ( ' ) в стойността на Value, понеже при стойност без апостроф нямаше такива проблеми.
Проблемът не можах да го реша и с форматиране на стринга понеже тогава се получаваше промяна на стойността която се търси, а и пак гърмеше :(
Моля, ако някой е имал подобен проблем нека каже как го е преборил.

Поздрави на всички.



Тема Re: Проблем с ADODataSet.Locateнови [re: Daniel]  
АвторNazarov (Нерегистриран)
Публикувано03.04.06 12:33



Виж тук:





Тема Re: Проблем с ADODataSet.Locateнови [re: Daniel]  
Авторhi (Нерегистриран)
Публикувано03.04.06 20:38



незнам би трябвало да гърми още на
FieldName := '04';

освен ако FieldName не е стринг
var
FieldName, Value :String ;
Table1: TTable;

begin
Table1 := TTable.Create(nil);
Value := 'fdfdfd';
try
(*провери дали табле е свързан коректно с bazata za, koqto se zakachash
mojesh da se zakachish i v dizain mode*)
//Table1.TableName := '';

if not (Table1.Locate('imetona_pole_ot_bazata_ne_moje_da_e_string',Value,[])) then begin
...
end;//if

finally
Table1.Free;
енд;//try

end;//begin



Тема Re: Проблем с ADODataSet.Locateнови [re: hi]  
АвторDaniel (Нерегистриран)
Публикувано05.04.06 13:48



FieldName е string, свързаността си е коректна, проблема е ако в стойността по която се търси има апостроф, т.е. нещо от типа "ALA'ALA". Тогава Locate нещо гърми.
Надявам се поне някой да е успял да намери решение на такъв проблем, ако му се е случвало.
Засега ще видя това, което колегата по-горе е пост-нал дали няма да ми свърши работа.

Благодаря на всички отзовали се и Успех.



Тема Re: Проблем с ADODataSet.Locate [re: Nazarov]  
АвторDaniel (Нерегистриран)
Публикувано06.04.06 23:36



Не знам защо, но при опит за свързване към SQL Server база ми дава "Invalid variant type conversion", а с обикновен ADODataSet този проблем го няма.
Някакви идеи от какво би могло да бъде ?



Тема Re: Проблем с ADODataSet.Locateнови [re: Daniel]  
АвторHl (Нерегистриран)
Публикувано07.04.06 19:04



AKO V POLE OT BAZA DANNI IMA APOSTOF. tAKA LI?
eMI TOVA POLE STRING LI. iLI mEMO
KO NE E NAPRAVIGO DA E .
i MISLIA CHE NIAMA DA GARMI.
I KATO GARMI KADE KARMI PRI KOMPILIRANETO - GRESHKA NA OKMPILATORA ILI PRI STARTIRANETO .
i KAKVO PISHE . zA GRESHKATA



Тема Re: Проблем с ADODataSet.Locateнови [re: Daniel]  
АвторHl (Нерегистриран)
Публикувано07.04.06 19:09



AHA MISLI CHE TAKA TRIABVA DA STANE


tABLE1.lOCATE(FIELDVALUE('').Value, 'DRAN-DRAN',[]);
ILI
TABLE1.lOCATE(FiledByName('dfdf').AsValue,'gfgf',[]);

ili
Table1.Locate(Fields.Fields[1].Value,'gfgf'[]);

ako ot toza primer ne stane. Ne sam gledal za spazvane vij tam doopravi go..
No ti shtom iskash da vzemesh stoinosta probva s ASVALUE ili samo s Value.
Vij tam niakoi primer.
I ako mojesh pomogni za Fiskalnite printeri



Тема Re: Проблем с ADODataSet.Locateнови [re: Daniel]  
АвторNazarov (Нерегистриран)
Публикувано07.04.06 21:21



> Някакви идеи от какво би могло да бъде ?

Вероятно ползваш Delphi 7.00, където има такъв бъг. Ъпдейт до 7.02 ще отстрани този проблем.



Тема Re: Проблем с ADODataSet.Locateнови [re: Nazarov]  
АвторDaniel (Нерегистриран)
Публикувано07.04.06 21:36



Ползвам Delphi 6.
Изключението се получава, когато задам Active na BetterAdoDataSet на True.
Преди това съм вързал всичко коректно - АdoConnection, udl, CommandText DataSource, DBGrid:

DataSource.DataSet = BetterAdoDataSet
AdoConnection.Connection -> udl file
BetterAdoDataSet.Connection = AdoConnection
BetterAdoDataSet.CommandText = "Select id from table1"
DBGrid.DataSource = DataSource

Когато сетна Active на BetterAdoDataSet на True, се огърмява с посоченото изключение.
При ADODataset, това не се случваше и не успях да разбера кое е грешката.
Може би някой event се задейства при промяна стойността на свойството Active ?
Моля, ако има нещо нередно или нещо съм направил не както трябва при задаването на свързването на компонентите, кажи.

Поздрави



Тема Re: Проблем с ADODataSet.Locateнови [re: Hl]  
АвторDaniel (Нерегистриран)
Публикувано07.04.06 21:44



Значи да уточня:
Ползвам DataSet.Locate(FieldName,FieldValue,[loCaseInsensitive]), за да проверя дали запис с дадена стойност, в случая FieldValue, го има в базата.
Полето в базата е стрингово. Проблема е ако има апостроф в FieldValue, тогава при работа на приложението се вади изключение : Parameters are not acceptible or out of range.
При стойност без апостроф, всичко си работи нормално.
Установих, че апострофа е проблема, но досега не намерих начин как да го оправя.
Може би единия начин е да обхождам записите в таблицата и да симулирам нещо подобно на Locate, което ще е бавно разбира се.
Лошото е че и при SQL заявка ще се получи същото, понеже няма кой знае какъв контрол върху това което се въвежда (това е изрично изискване).




Страници по тази тема: 1 | 2 | 3 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.