Знам, че п

8 отговора 364 прегледа
#1

Знам, че п

Здравейте на всички,

попрочетох някои от въпросите и мненията по различни теми и тъй като имам проблем, ще се обърна и аз към Вас.
Пиша една програма за база данни на Dеlphi по задание и имам два проблема, с които не мога да се справя за сега. Единият е следния:
В поле тип string, 100 символа, състоящо се от няколко думи трябва да търся по предварително зададени (2 или 3) буквосъчетания. Буквосъчетанията ще се задават в edit контроли.
Опитах да използвам LIKE % % в SQL конструкция, но Delphi не го познава.
Нямам необходимите знания и опит, за да се справя.
Моля за съдействие.

Karavel

Отговор
в отговор на Karavel #2

Re: Знам, че п

Predwaritelno se izwiniawam za telegrafi4nia stil....

1. Pro4eti helpowete i razgledaj primerite na Delphi - predi da tarsish pomost w podobni forumi

2. Delphi niama nisto obsto s SQL - da si se zamislial 4e problema moze da e w teb- i w neprawilnoto zadawane na query-to
eto ti edin primer : select * from table.db where STRField like "abc%"

3. Ne zam oba4e kato ti gledam uslowieto koeto si dal dali samo gornia primer ste ti pomogne - ama opitaj

---
IN VINO VERITAS!
Отговор
в отговор на Karavel #3

Re: Знам, че

Благодаря за съвета, пробвах - все не става.
Не мога да се справя.

Отговор
в отговор на Karavel #4

Re: Знам, че

Ski sea - az s SQL ne se zanimawam ama w delphi ima edna finkcijka pos porazgledaj q pa moje da ti dojde nqkoq ideq.


DB sux!

Отговор
в отговор на SDR #5

Re: Знам, че

Разгледах я, обаче, нали съм си новак - изглежда цикъла търсене не оправих.
Дава ми грешка: "Data set not in edit mode" или нещо такова. Пиша Table.Edit - пак същото.

Отговор
в отговор на Karavel #6

Kakwo to4no se opitwash...

da naprawish - kade go pishesh tozi SQL kod - taj malko powe4e info stoto taka wyobste ne moga ti pomogna - i towa s LIKE si raboti - wgradenia SQL interpretator se sprawia dobre s zaiawkite stiga da ne sa prekleno zawarteni - i podarza dosta nesta.

Ako mozesh napishi strukturata na tablicata - kato poleta i tipowe - da ne si obarkal nesto tam

---
IN VINO VERITAS!
Отговор
в отговор на Karavel #7

Re: Знам, че

Ако съм разбрал правилно, може би искаш да направиш следното:
..............
Query1.Sql.Text:='select * from Table1 where Field1 like :SearchStr';
...........
Query1.Close;
Query1.ParamByName('SearchStr').AsString:='%'+Edit1.Text+'%';
Quety1.Open;

Отговор
в отговор на PhantomAS #8

Re: Знам, че п

function Locate(const KeyFields: String;
const KeyValues: Variant;
Options: TLocateOptions): Boolean;

procedure TForm1.LocateButtonClick(Sender: TObject);
begin
Table1.Locate('Field1;Field2', VarArrayOf(['Ма','Зд']), [loPartialKey]);
end;

Отговор
в отговор на Karavel #9

Re: Знам, че п

Благодаря на всички,
- pos() ми свърши чудесна работа и задачата се реши с нея,
- онова с LIKE работи, ама нали трябваше да се сетя първо че базата трябва да е индексирана; що не касае обаче до онези редове с ParamByName() не съм дорасъл така че да ги разберам
- това с LOCATE ще го пробвам по-нататък.
Имам още един проблем, с който не мога да се справя, но ще отворя нова тема.
Благодаря още веднъж.

Отговор