|
Страници по тази тема: 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 | >> (покажи всички)
|
|
|