Adatbázis: SQL, XML DB

mysql tárolt eljárás

Szeretnék előzetesen php-ban megírt sql lekérdezéseket tárolt eljárásban megvalósítani. De egy olyan lépésbe ütköztem, amire nem találok megoldást sehol.
Az egyik az lenne, amikor lenne egy lekérdezés (select a,b,c into va,vb,vc from ... limit 1) itt hogy tudom eldönteni, hogy volt e találati eredmény, azaz a mysql_num_rows mi helyettesíti.
A probléma kör ugyan az, annyi különbséggel, hogy egy cursor változóba megy a lekérdezés. Hogyan tudom meg, hány elemet talált, anélkül, hogy a találatot végig pörgessem, vagy csináljak egy másik lekérdezést?

[megoldva]ms sql server error 945

Van egy win2003 server, IIS -el egy weboldalt szolgál ki, amin keresztül böngészőkkel egy ms sql 2005 server express adatbázisból kérdezgetnek. A következő történt: az event log -ban írogatni kezdett az ms sql server, hogy elérte a 2 GB -os korlátot és nem tudja csinálni emezt meg amazt. Nem tudott irogatni az adatbázis log táblájába. Ebből lehet nyomon követni, milyen lekérdezések történtek. A logok rendszeresen mentődnek máshova, de ezt a táblát nem ürítik. Ezt én egy külön megírt alkalmazáson keresztül tudom üríteni. ( Tudnám direkt be is törölni, de hét többek közt ezért írták ezt, hogy ezen keresztül törölhetem is.) Megnyomok egy purge message logs gombot és kiválasztok egy dátumot, ameddig bezárólag töröl.

Eddig ez így működött is. Ma nem 1-2 hónapot választottam ki, hanem 4 hónapot. Egy kis szünet után kiírta : .NET 3.5 error timed out! Quit or Contine. Quit -et választottam, alkalmazás osszeomlott.

Ettől kezdve azt az adatbázist nem tudom megnyitni. Utána olvasgattam ilyesmiknek:

http://blog.sqlauthority.com/2007/08/02/sql-server-fix-error-945-databa…

(Ugyanez a hiba uzenetem, ha propertys -t nyomok az SQL studio 2005 manager express -ben)

Az isShutdown nekem is egy, de az adatbázis offline és online -be helyezésre csak hibauzenet van.

Újraindítva már volt service is meg a gép is.

Van valami ötletetek? Leírás? Link? Merre mehetnék tovább a megoldás kereséssel?

MySQL lokalizált lekérdezés

Sziasztok!

Van egy MySQL adatbázisom, melyen lekérdezéseket futtatok: Van egy Word tábla benne a szó és annak a jelentése. A problémám az, hogy a lekérdezésekben nem jól kezeli az ékezetes karaktereket. Ha például olyan szóra keresek, hogy 'agy', akkor visszakapom az 'ágy' szót is. Az lenne a kérdésem, hogy hogyan lehetne orvosolni ezt a problémát?
Annyit próbáltam már, hogy a karaktarkódolást mind a [client] mind [mysqld] szekciókban utf8-ra állítottam a my.cnf állományban.
Tehát utf8-ban tárol és úgy is kérdez le, az eredmény mégsem jó...

Előre is köszönöm!

MDE állományból VBA kód kinyerése

Következő a kérdésem:

Van-e valami létező megoldás arra, hogy VBA kódot nyerjek ki M$ ACCESS MDE állományából? Gugli bácsi nem bíztat, de hátha itt a szakértők adnak tippet.

Arra gondoltam, ha lefordított osztály-állományokra is készítettek decompiler-t, akkor csak akad erre a feladatra is.

Vagy csak álmodozom?

Köszönöm a tanácsokat!

Üdv, Cözi

MEGOLDVA - SQL gyorsítása - ismétlődő műveletek

Sziasztok,

tudnátok pár tippet adni, miként lehetne felgyorsítani egy SQL lekérdezést (MS SQL 2000-en), ahol azonos műveltet kell többször végrehajtani. A következőről van szó: a nyitott tételeket kell kilistáznom ügyfelenként összesítve az alábbi mezőkkel:

Ügyfél
Tartozás összesen
Lejárt tartozás
30 napon belül esedékes
30-60 napon belül esedékes
60 napon túl esedékes
30 napon belül lejárt
30-60 napon belül belül lejárt
60 napon túl lejárt

A riport megvan, de nagyon lassú. Maga az alap egyszerű (ld. lent), a gondjaim a következők:
1.
Az "Összeg"-et kalkulálni kell (kedvezmények, árfolyamkülönbözet stb. elég hosszú műveletsor extra case vizsgálatokkal), azaz több ezer rekord esetében soronként ugyanazt a műveletet hajtja végre a szerver min. 8-szor. Sajnos függvényt nem tudok, használni, mert Crystal Reporthoz kellene és az nem szereti.
2.
Ha lehet már a szerveren szeretném elvégezni az összesítést, mert a Crystalt ebben is lassúnak tartom.

DECLARE @RefDatumPlusz30 datetime
Set @RefDatumPlusz30 = DATEADD(dd, 30, GETDATE())
DECLARE @RefDatumPlusz60 datetime
Set @RefDatumPlusz60 = DATEADD(dd, 60, GETDATE())
DECLARE @RefDatumMin30 datetime
Set @RefDatumMin30 = DATEADD(dd, -30, GETDATE())
DECLARE @RefDatumMin60 datetime
Set @RefDatumMin60 = DATEADD(dd, -60, GETDATE())

SELECT
BP_ID,
SUM(Összeg),
SUM(CASE Esedekes <= GETDATE() THEN Összeg ELSE 0) AS Lejárt,
SUM(CASE Esedekes > GETDATE() THEN Összeg ELSE 0) AS Esedékes,
SUM(CASE Esedekes >= @RefDatumMin30 AND Esedekes < GETDATE() THEN Összeg ELSE 0) AS Lejárt30,
SUM(CASE Esedekes >= @RefDatumMin30 AND Esedekes < @RefDatumMin60 THEN Összeg ELSE 0) AS Lejárt60,
SUM(CASE Esedekes <= @RefDatumMin60, GETDATE()) THEN Összeg ELSE 0) AS Lejárt60Plusz,
SUM(CASE Esedekes < @RefDatumPlusz30 AND Esedekes > GETDATE() THEN Összeg ELSE 0) AS Esedekes30,
SUM(CASE Esedekes >= @RefDatumPlusz30 AND Esedekes < @RefDatumPlusz60 THEN Összeg ELSE 0) AS Esedekes60,
SUM(CASE Esedekes >= @RefDatumPlusz60 THEN Összeg ELSE 0) AS Esedekes60Plusz
FROM
NyitottTételek
GROUP BY
BP_ID

Előre is kösz a tippeket!

SQL update kérdés

Sziasztok!

Van egy ilyen leválogatás:
SELECT * FROM elso LEFT JOIN masodik valami ON (valami.masodik_id = elso.masodik_id) where valami.adat like 'x'

Hogy lehetne az "elso" táblában UPDATE-et végrehajtani a fenti szűrésnek megfelelő sorokon?

Nem vagyok járatos az SQL-ben, de most kellene néhány adatot módosítanom. Megköszönném, ha valaki segítene!

Can't connect through socket

Sziasztok!

Van egy ubuntu szerverem, amin zabbix fut.
Ma reggel azzal örvendeztetett meg, hogy nem megy a zabbix, mégpedig mysql hiba miatt:
10079:20091102:123421 [Z3005] Query failed: [2013] Lost connection to MySQL server during query [select num,value_min,value_avg,value_max from trends_uint where itemid=22395 and clock=1257159600]

Ebből van tonnányi.

Érdekes, hogy máshonnan, pl. phpmyadminból, mysql parancssorból elérem a mysql-t.
Ha lekérdezéseket futtatok, akkor pár lefut, de pár nem ezzel a hibával:
ERROR 2006 (HY000): MySQL server has gone away

Mi baja lehet? A /var/log/mysql.err üres, a mysql.log szintén.
Minek nézzek utána? Kínomban túl vagyok egy apt-get ugprade-en és egy do-release -upgrade-en, de rollbackelhető :)

Kösz
Greybear

LIKE vs '=' postgres

Sziasztok!

A PostgreSQL 8.4.1 dokumentacioban az all,h amennyiben a minta nem tartalmaz _ vagy % jeleket, akkor a LIKE ugyan ugy mukodik, mint a '='.
www.postgresql.org/docs/8.4/interactive/functions-matching.html#FUNCTIO…
If pattern does not contain percent signs or underscores, then the pattern only represents the string itself; in that case LIKE acts like the equals operator.

Nalam valahogy megse mukodik:
SELECT name FROM noaa WHERE name = 'PECS'; -> 1 talalat
SELECT name FROM noaa WHERE name LIKE 'PECS' -> 0 talalat
SELECT name FROM noaa WHERE name LIKE 'PECS%' -> 1 talalat
SELECT name FROM noaa WHERE name ~ '[[:space:]]$'; -> osszes sor

A fajl egy sora amibol az adatokat importaltam igy nez ki:
82,PECS,HU,PEC,18.22,46.06,150
Nincsen space sehol.

Hogy kerul az adatbazisba a nevek (pl. pecs) utan sorkoz(ok)? Hogy tudom kitorolni?
Miert van kulonbseg LIKE es '=' kozott abban az esetben, ha nem hasznalom a _% karaktereket?

A segitseget elore is koszonom!

mysql where in select-el

Hogy tudnám használni a where xy in (...) dolgot, úgy hogy a felsorolást egy újabb select biztosítaná.

Az eredeti gondolm az, hogy kiszeretnék egy táblából törölni minden olyan elemet, ami a legkorábbi 5-nél régebbi, az időt egy timestamp biztosítja. Ezt szeretném egy parancsban megvalósítani, de valahogy nem jövök rá.