Avatar billede mickni33 Nybegynder
14. november 2000 - 09:26 Der er 29 kommentarer og
1 løsning

Søgning på navn

S=Edit1->Text;
  Query1->SQL->Clear();
  Query1->SQL->Add(\"select * from KUNDE where fornavn = \'per\' \" );
  Query1->Open();
        String navn=Query1->FieldByName
(\"fornavn\")->AsString;
                    DBEdit1->Text=navn;

---------------------------------------------
I denne metode bliver der søgt på \' per \' men det er jo ikke særligt hensigtsmæssig da navnet jo er låst fast.
derfor er variablen S valgt  til at ligge navnet i, men jeg har ikke kunne få det til at fungerer, jeg ved der skal stå noget med

Query1->SQL->Add(\"select * from KUNDE where fornavn =\" )+ S;

af en eller anden art(har prøvet forskellige ting) men jeg regner ikke med at det er et problem for jeg her på eksperten.
defor gives der desværre kun 10 point
Avatar billede tigerdyr Nybegynder
14. november 2000 - 09:27 #1
Query1->SQL->Add(\"select * from KUNDE where fornavn =\'\" )+ S + \"\'\";

Avatar billede mickni33 Nybegynder
14. november 2000 - 09:36 #2
Den laver desværre en fejl der siger
Ambiguity between _fastcall System::operator +

Jeg glemte at sige at det selvfølgelig er i Borland Builder 4 jeg har programmet liggende
Avatar billede uffe_kld Nybegynder
14. november 2000 - 09:46 #3
skal det ikke være noget i retning af
char sznavn =\"per\" //som eksempel
char szQuery[] =\"select * from KUNDE where fornavn =\"
strcat(szQuery, sznavn);
Query1->SQL->Add(szQuery)
Avatar billede uffe_kld Nybegynder
14. november 2000 - 09:48 #4
Jeg glemte anførelsestegnene
Avatar billede mickni33 Nybegynder
14. november 2000 - 09:57 #5
Man kan ikke lave en Ansi til char, tør heller ikke rode mig ud i noget hvor jeg blander char, string og String. Så dygtig er jeg ikke endnu. Men der må være en nemmere måde har fået det til at virke før men har selvfølgelig glemt det nu. typisk. Det er noget med at skrive + S og så er det noget med anførselstegnene der skal stå rigtigt. Håber der er en ekspert der kan hjælpe mig
Avatar billede mickni33 Nybegynder
14. november 2000 - 10:05 #6
Jeg tror heller jeg må sætte pointene op til 50 point for et svar jeg kan bruge
Avatar billede mickni33 Nybegynder
14. november 2000 - 11:11 #7
Jeg lukker spørgsmålet selv om jeg ikke har fundet ud af en metode til at løse problemet
Avatar billede jpk Nybegynder
14. november 2000 - 13:04 #8
Argumentet S skal stå inde i parenteserne...
Noget lignende:

Query1->SQL->Add(\"select * from KUNDE where fornavn =\" + S);

Avatar billede mickni33 Nybegynder
14. november 2000 - 13:20 #9
Det virker desværre ikke må nok bladre mine bøger igennem med mindre der er en der har et guldkorn
ellers tak for hjælpen
Avatar billede rm Nybegynder
14. november 2000 - 13:40 #10
sådanne har gør jeg:

string str = \"per\";
sprintf(aQuery, \"SELECT * FROM kunde WHERE fornavn = %s\", str.c_str());
Query1->SQL->Add(aQuery);
Avatar billede mickni33 Nybegynder
14. november 2000 - 13:56 #11
Hej rm
er spændt på resultatet, men sprintf virker ikke i min builder skal der inkluderes noget
Avatar billede rm Nybegynder
14. november 2000 - 13:59 #12
ja <stdio.h>
og <string.h> for at bruge string
Avatar billede mickni33 Nybegynder
14. november 2000 - 14:08 #13
Desværre tør ikke blande dine koder med AnsiString
da vi er igang med et større projekt.
Men jeg prøver når jeg kommer hjem hvis det fungerer får du 100 point
Avatar billede rm Nybegynder
14. november 2000 - 14:15 #14
du kan også bruge char*, følgene er fra MSDN:

sprintf, swprintf
Write formatted data to a string.

int sprintf( char *buffer, const char *format [, argument] ... );

int swprintf( wchar_t *buffer, const wchar_t *format [, argument] ... );

Routine Required Header Compatibility
sprintf <stdio.h> ANSI, Win 95, Win NT
swprintf <stdio.h> or <wchar.h> ANSI, Win 95, Win NT


For additional compatibility information, see Compatibility in the Introduction.

Libraries

LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version


Return Value

sprintf returns the number of bytes stored in buffer, not counting the terminating null character. swprintf returns the number of wide characters stored in buffer, not counting the terminating null wide character.

Parameters

buffer

Storage location for output

format

Format-control string

argument

Optional arguments

For more information, see Format Specifications.

Remarks

The sprintf function formats and stores a series of characters and values in buffer. Each argument (if any) is converted and output according to the corresponding format specification in format. The format consists of ordinary characters and has the same form and function as the format argument for printf. A null character is appended after the last character written. If copying occurs between strings that overlap, the behavior is undefined.

swprintf is a wide-character version of sprintf; the pointer arguments to swprintf are wide-character strings. Detection of encoding errors in swprintf may differ from that in sprintf. swprintf and fwprintf behave identically except that swprintf writes output to a string rather than to a destination of type FILE.

Generic-Text Routine Mappings

TCHAR.H Routine  _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined
_stprintf sprintf sprintf swprintf


Example

/* SPRINTF.C: This program uses sprintf to format various
* data and place them in the string named buffer.
*/

#include <stdio.h>

void main( void )
{
  char  buffer[200], s[] = \"computer\", c = \'l\';
  int  i = 35, j;
  float fp = 1.7320534f;

  /* Format and print various data: */
  j  = sprintf( buffer,    \"\\tString:    %s\\n\", s );
  j += sprintf( buffer + j, \"\\tCharacter: %c\\n\", c );
  j += sprintf( buffer + j, \"\\tInteger:  %d\\n\", i );
  j += sprintf( buffer + j, \"\\tReal:      %f\\n\", fp );

  printf( \"Output:\\n%s\\ncharacter count = %d\\n\", buffer, j );
}


Output

Output:
  String:    computer
  Character: l
  Integer:  35
  Real:      1.732053

character count = 71


Stream I/O Routines

See Also  _snprintf, fprintf, printf, scanf, sscanf, vprintf Functions


--------------------------------------------------------------------------------
Send feedback to MSDN.Look here for MSDN Online resources.
Avatar billede rm Nybegynder
14. november 2000 - 14:56 #15
hvad var der galt med det?
Avatar billede mickni33 Nybegynder
14. november 2000 - 14:59 #16
Jubiiiiiiii
Nu har jeg omsider selv fundet ud af problemet. Man må sige at man skulle over i en anden grøft.
Men her er løsningen efter at have blandet en masse kode sammen fra diverse bøger.
Kris Jamsa\'s hæfte længe leve...huraaaahh.

nej bare en joke.

S=Edit1->Text;
Query1->SQL->Clear();   
Query1->SQL->Add(\"select fornavn from KUNDE where fornavn =:Param1\");
   
    Query1->ParamByName(\"Param1\")->AsString=S;
    Query1->Open();
   
String navn= Query1->FieldByName(\"fornavn\")
->AsString;

DBEdit1->Text=navn;


Fejlen eller løsningen var metoden ParamByName(ansiString)

Avatar billede mickni33 Nybegynder
14. november 2000 - 15:04 #17
rm
Din løsning så rigtig spændende ud men jeg tror den var lidt for syrede til mig . Men jeg må lige tjekke den ud når jeg får tid.(sidder og laver projekt).
Ellers tak for de mange svar fra alle jer eksperter
Avatar billede rm Nybegynder
14. november 2000 - 15:17 #18
lige et siste spøgsmål det var i c/c++ ik\' ;o) 
Avatar billede mickni33 Nybegynder
14. november 2000 - 15:20 #19
jooo,,aaaahh  C++ Builder 4.0
Avatar billede rm Nybegynder
14. november 2000 - 15:35 #20
hvad var så syret ved det, har du aldrig brugt printf(), sprintf(), scanf() ,sscanf() eller alle de andre gode gamle c funtioner fra <stdio.h>?
Avatar billede rm Nybegynder
14. november 2000 - 15:36 #21
hvis du selv har løst dit spørgsmål kan du så ikke lukke det ved at give dig selv pointne?
Avatar billede mickni33 Nybegynder
14. november 2000 - 16:29 #22
OK Jeg er nybegynder på eksperten..
De gode gamle c funktioner har jeg aldrig brugt men bliver nødt til at kunne dem når jeg er færdig med datamatiker studiet.
Avatar billede rm Nybegynder
14. november 2000 - 16:46 #23
datamatikerdet er jo kun en håndværker uddannelse
nej datalogi det er et studie ;o)
Avatar billede mickni33 Nybegynder
14. november 2000 - 16:48 #24
<<rm
datalogi studiet  ja det gad jeg sku godt ender nok med at man bliver evigheds student
Avatar billede rm Nybegynder
14. november 2000 - 16:51 #25
men med en høje løn og bedre uddannelse end en datamatiker nogen sinde for ;o)
(fag fasisme er godt... meget fag fasisme er meget godt)
Avatar billede mickni33 Nybegynder
14. november 2000 - 16:52 #26
<<rm
har man stadig C på datalog studiet
Avatar billede rm Nybegynder
14. november 2000 - 16:54 #27
vi har en 2 timers forlæsnig om c++ og så kan vi bare det ;O)
Avatar billede blackie Nybegynder
16. november 2000 - 09:51 #28
<<rm
Undskyld, jeg blander mig, men er vi så ikke alle håndværkere?
Vi bruger alle værktøjer og redskaber.
3. semester på Datamatiker uddannelsen består i at selv lave sit eget værktøj/redskab, nemlig en compiler.
Seriøst spørgsmål:
Hvad kan du, som vi andre ikke kan med din uddannelse?
Avatar billede rm Nybegynder
21. november 2000 - 01:05 #29
i lære at bruge et værktøj til at løse et problem, vi lære at bruge en metode. Det betyder at når værktøjet er forældet kan vi uden problemmer bruge at andet.(tænk hvis det var comal og ikke c++ i lærte) ;o)

udover det så lære vi også at lave en compiler (og simulere en CPU) på 3. semester.
Avatar billede blackie Nybegynder
22. november 2000 - 20:56 #30
Vil du beskrive det nærmere: metode ??????

Jeg mener, når man har været div. værktøjer igennem, er der vel ikke så langt til det næste eller hvad???

Er der noget galt med c+++??
Du kunne lige så godt skrive i dit eget kodesprog, jeg forstår ikke en #include \"Prut.h\"
af hvad du mener.
Du har ikke givet mig et ordentligt svar, som jeg forstår...............

:0}Vil du det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester