Archyvas

Įrašo tag'ai: ‘SQL’

phpMyAdmin klaida ant MySQL

Rugpjūtis 15th, 2008 Ernestas Kardzys 2 komentarai

Sukėliau phpMyAdmin’ą, sukūriau konfiguraciją, pabandžiau paleisti šį daikčiuką ir gavau bjaurią klaidą:

#1045 – Access denied for user ‘root’@'localhost’ (using password: NO)

Pakapsčiau internete ir išsprendžiau problemą – konfiguracijoje šio to trūko.

<?php
/*
* Generated configuration file
* Generated by: phpMyAdmin 2.11.8.1 setup script by Michal Čihař <michal@cihar.com>
* Version: $Id: setup.php 11423 2008-07-24 17:26:05Z lem9 $
* Date: Fri, 15 Aug 2008 09:37:15 GMT
*/

/* Servers configuration */
$i = 0;

/* Server localhost (config:root) [1] */
$i++;
$cfg['Servers'][$i]['host'] = ‘localhost’;
$cfg['PmaAbsoluteUri'] = ‘localhost/phpmyadmin/’;
$cfg['Servers'][$i]['password'] = ‘root’;

$cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;
$cfg['Servers'][$i]['relation'] = ‘pma_relation’;
$cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;
$cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;
$cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’;
$cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;
$cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;
$cfg['Servers'][$i]['history'] = ‘pma_history’;
$cfg['Servers'][$i]['host'] = ‘localhost’;
$cfg['Servers'][$i]['extension'] = ‘mysqli’;
$cfg['Servers'][$i]['connect_type'] = ‘tcp’;
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['controluser'] = ‘root’;
$cfg['Servers'][$i]['controlpass'] = ‘root’;
$cfg['Servers'][$i]['auth_type'] = ‘config’;
$cfg['Servers'][$i]['user'] = ‘root’;
$cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;

/* End of servers configuration */

?>
Trijų juodai pažymėtų eilučių trūko :) Pridėjau jas – viskas susitvarkė :)

C#. Reikšmių išgavimas iš DataTable klasės

Rugpjūtis 11th, 2008 Ernestas Kardzys Nėra komentarų

DataTable dataTable = new DataTable();

// Užpildome duomenimis

string data = dataTable.Rows[indeksas] [stulpelio_pavadinimas].ToString();

Kažkas tokio:

for (int i = 0; i < dataTable.Rows.Count; i++)

Console.WriteLine(dataTable.Rows[i]["Vardas"].ToString();

Kategorijos:Programavimas Raktažodžiai:, , , ,

SQL. CASE sakinys

Birželis 30th, 2008 Ernestas Kardzys Nėra komentarų

Kartais gali prireikti SQL’e susieti vieną informaciją su kita. Pvz. skaičius 1-as reiškia “A”, skaičius 2 reiškia “B”, skaičius 3 reiškia “C”. Kaip tai padaryti? Pasinaudoti CASE sakiniu:

 SELECT CASE Skaiciai WHEN 1 THEN ‘A’ WHEN 2 THEN ‘B’ ELSE ‘C’ END AS ‘Skaitinė informacija’ FROM SkaiciuLentele

Geras daiktas ;)

SQL. Duomenų bazės lentelių gavimas

Birželis 23rd, 2008 Ernestas Kardzys 3 komentarai

Jeigu turime duomenų bazę ir mums baisiai reikia gauti jos lenteles, galime vykdyti užklausą:

SHOW TABLES FROM <duomenų_bazė>

Pavyzdžiui:

mysql> SHOW TABLES FROM wordpress;
+———————–+
| Tables_in_wordpress   |
+———————–+
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+———————–+
10 rows in set (0.00 sec)

mysql>

Ant MySQL veikia, kaip su MS SQL – nežinau.

Kategorijos:Programavimas, SQL Raktažodžiai:, , , ,

SQL funkcijų vykdymas

Birželis 19th, 2008 Ernestas Kardzys Nėra komentarų

Su tokia nedidele problemėle susidūriau, bet išsprendžiau. Kad žmonės per daug nesikankintų, sugrūsiu ir čia sprendimą. Kad būtų aišku, viskas vykdoma ant Microsof SQL Server Management Studio (geras daiktas, jei naudojate SQL serverį, tuojau pat pumpuokitės iš Microsoft tinklalapių).

Turime baisiai gerą ir naudingą SQL funkciją:

ALTER FUNCTION [dbo].[GetUserID]
(
– Add the parameters for the function here
@Name nvarchar(250)
)
RETURNS nvarchar(250)
AS
BEGIN
– Declare the return variable here
DECLARE @Result nvarchar(250)

– Add the T-SQL statements to compute the return value here
SELECT @Result=UserID FROM Users WHERE UserName=@Name

– Return the result of the function
RETURN @Result

END

Kaip matome, šis gėris gražina nvarchar(250). Mums reikia kaip nors įvykdyti šį programavimo minties stebuklą. Tad keverzojame:

SELECT dbo.GetUserID(‘Petras’)

Kaip atsakymą gausime:

(No column name)

17

Aišku, skaičius bus kitas :D Bet gali nepatikti tai, kad nėra stulpelio pavadinimo. Tad “paturbiname” užklausą:

SELECT dbo.GetUserID(‘Petras’) AS UserID

Gauname:

UserID

17

SQL. Žmogaus amžiaus apskaičiavimas SQL

Birželis 12th, 2008 Ernestas Kardzys 2 komentarai

Atrodytų paprasta problemėlė, bet kaip tai realizuoti – reikia pamąstyti. Principas paprastas: turime šios dienos datą, iš jos atimame žmogaus gimimo datą ir gaunam amžių. “Power and Simplicity” – jeigu panaudosime Mambo šūkį.

http://www.sqlhacks.com/index.php/Dates/Person-Age <- Naudingas tinklapis.

Aš tai realizavau taip:

DECLARE @Age int
DECLARE @HumanID int
SET @HumanID = 10
DECLARE @BirthDate datetime
SELECT @BirthDate=BirthDate FROM Human WHERE HumanID=@HumanID
SELECT @BirthDate
SELECT @Age=datediff(day,@BirthDate,CURRENT_TIMESTAMP) / 365
RETURN @Age

SQL įterpto įrašo ID gavimas

Birželis 9th, 2008 Ernestas Kardzys Vienas komentaras

Jeigu dirbate su MS SQL greičiausiai Jums reikia įterpti įrašą. Taip pat gali prireikti, kad būtų gražintas įterpto įrašo ID.

Paprastas triukas:

INSERT lentelės_vardas
( laukas1, laukas2, laukas3)
VALUES ( @laukas1, @laukas2, @laukas3)
SELECT @@IDENTITY

Kaip padaryti lentelės kopiją SQL

Gegužė 9th, 2008 Ernestas Kardzys 2 komentarai

Jeigu Jūms prireikė padaryti SQL DB serverio lentelės kopiją galima tai padaryti su INSERT INTO sakiniu:

SELECT <ką_kopijuoti> INTO <naujos_lentelės_pavadinimas> FROM <iš_kur_kopijuojame>

Pvz.: SELECT * INTO atsargine_kopija FROM vartotojai

http://www.w3schools.com/Sql/sql_select_into.asp