Probleem met SQL systeemtabellen en DELPHI

Pagina: 1
Acties:

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Lo, ik heb een probleempje.

Ik moet vanuit een systeemtabel in SQL de namen van een tabel lezen (dus ik zoek m.b.v id naar tabel). Opzich heel simpel, maar het datatype is niet bekend bij delphi.

Dus wanneer ik een SQL lus heb die dus ongeveer dit doet

SELECT NAME, ID FROM....... WHERE NAME = Tabelnaam.

Doet ie het in de query analyzer perfect, id en tabelnaam.
Maar zet ik deze lus in delphi en zeg delphi alle velden die er ingelezen worden (qeury options, add al fields) geeft ie alleen het ID veld terug ( deze wordt ook als enige in de grid weergegeven)

Kan iemand me uitleggen hoe ik delphi zeg nou je kunt het veld niet inlezen omdat je het type niet kent. (dus hij geeft lege vakjes weer waar de namen moeten staan na veel geklooi). Hoe ik hem dus zeg dat het datatype sysname een string is.

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Heeft er dan echt niemand een idee :'(

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Niemand ervaring met systeemtabellen van SQL?

Verwijderd

Probeer es het politoek correcte command:

select whatever, nogiets from owner.database.tablename

vergeet dat ook niet bij je ttable/tquery te zetten

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Maakt niets hij geeft nog steeds alleen het ID veld terug.

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Heeft niemand ooit een tabelnaam gelezen uit een system tabel in delphi?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:51
Kick eens niet voortdurend jouw topic naar boven!.
zeg delphi alle velden die er ingelezen worden (qeury options, add al fields) geeft ie alleen het ID veld terug ( deze wordt ook als enige in de grid weergegeven)
Dit is iets wat ik NOOIT doe. Stel dat je later uw table ofzo wijzigt, dan kan je diep in de shit zitten. Aan de fields-editor kom ik nooit.
Ik doe gewoon "SELECT * FROM ... " in m'n SQL property.
Verwijder eens alle fields uit die field-editor en probeer het dan opnieuw. Het zou wel eens kunnen dat je een verkeerd data-type hebt toegewezen aan dat 'name' veld.


nb: probeer ook eens duidelijke, nederlandse zinnen te construeren. Dit helpt al veel om uw probleem te begrijpen, en dan doe ik ook meer moeite om te lezen

https://fgheysels.github.io/


  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Mmh mijn zinnen zijn misschien niet perfect (maar goed nl hoor sla de boeken er maar op na), maar ik zeg dus het probleem zit hem in het DATATYPE!!!

Het name veld uit de tabel sysobjects is dus van een onbekend datatype (sysname) voor delphi.

Maar probleem is al opgelost.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Ik snap al die moeite niet? Ik neem aan dat je sqlserver gebruikt?

Ik weet niet of je hier iets aan hebt maar je kunt zoiets als dit doen:

SELECT *
FROM Northwind.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'


Eventueel kan je ook SP_HELP Tablename gebruiken.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Wat raptorix schrijft is inderdaad 'the way to go': gebruik de INFORMATION_SCHEMA views. Het is absoluut politiek incorrect om rechtstreeks op de systeemtabellen te querien vanuit je applicatie (imho).

Met CAST(name AS VARCHAR(128)) had je overigens het datatype simpel kunnen wijzigen.

Today's subliminal thought is:

Pagina: 1